Foros del Web » Programando para Internet » PHP »

Mostrar valoracion media y mostrar imagen

Estas en el tema de Mostrar valoracion media y mostrar imagen en el foro de PHP en Foros del Web. Buenas tardes. Necesito nuevamente haceros una consulta que no encontre por internet. En la web tengo puesta una zona de comentarios en la cual los ...
  #1 (permalink)  
Antiguo 11/04/2014, 13:32
Avatar de paxarin  
Fecha de Ingreso: enero-2010
Ubicación: Santander
Mensajes: 413
Antigüedad: 14 años, 3 meses
Puntos: 6
Mostrar valoracion media y mostrar imagen

Buenas tardes.
Necesito nuevamente haceros una consulta que no encontre por internet.
En la web tengo puesta una zona de comentarios en la cual los usuarios puntuan la información del 1 al 5.
Realizo una consulta a la bbdd para que me aparezcan la informacion de todos los comentarios que han dejado y la valoración media de estos.
Mi pregunta es al siguiente.
Aparte de aparecer el valor (ejempo 3.5) podria o mejor dicho existe la posibilidad de que se muestre en este caso 3 estrellas y media?
Alguien puede decirme donde encontrar dicha información?
un saludo
__________________
http://www.paxarindesign.es
  #2 (permalink)  
Antiguo 11/04/2014, 13:39
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años
Puntos: 10
Respuesta: Mostrar valoracion media y mostrar imagen

Si claro...En la programación nunca digas nunca.

Lo que se me ocure sobre la marcha es que busques una colección de imagenes de las estrellas que quieres...Me explicó, las 10 estrellas que quieres pero que tengas una imagen diferente por relleno. Una imagen que solo tengo medio relleno, otra imagen completamente rellena, otra imagen con 1 estrella rellena y otra a mitad...ETC tu me entiendes, si quieres una valoracion sobre 10 estrellas necesitaras 21 imagenes. Si quieres una valoracion del 1 al 5 pues 11.

Las guardas en tu carpeta de imagenes le das los nombres estrella0, estrella5, estella10, estrella15, succesivamente.

Luego creas una función que le saca la media a las valoraciones y las basa en medio decimal, o sea, que si tiene 3.4 pues que te lo convierte en 3.5, lo multiplicas por 10 y ya tienes la cifra equivalente a la imagen que quieres mostrar

Luego pasas esa variable al html

echo '<img src="resources/estrella'.$img.'.jpg" />';

Voila, siempre se mostrara la cantidad de estrellas que representa la valoración.

PD: Hago lo de multiplicarlo *10 porque en algunos sistemas operativos decimales se muestran con "," en otros con "." entonces para evitar conflicto nos los quitamos de encima.

Un saludo

Última edición por Qazser; 11/04/2014 a las 13:44
  #3 (permalink)  
Antiguo 11/04/2014, 13:56
Avatar de paxarin  
Fecha de Ingreso: enero-2010
Ubicación: Santander
Mensajes: 413
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: Mostrar valoracion media y mostrar imagen

Cita:
Iniciado por Qazser Ver Mensaje
Si claro...En la programación nunca digas nunca.

Lo que se me ocure sobre la marcha es que busques una colección de imagenes de las estrellas que quieres...Me explicó, las 10 estrellas que quieres pero que tengas una imagen diferente por relleno. Una imagen que solo tengo medio relleno, otra imagen completamente rellena, otra imagen con 1 estrella rellena y otra a mitad...ETC tu me entiendes, si quieres una valoracion sobre 10 estrellas necesitaras 21 imagenes. Si quieres una valoracion del 1 al 5 pues 11.

Las guardas en tu carpeta de imagenes le das los nombres estrella0, estrella5, estella10, estrella15, succesivamente.

Luego creas una función que le saca la media a las valoraciones y las basa en medio decimal, o sea, que si tiene 3.4 pues que te lo convierte en 3.5, lo multiplicas por 10 y ya tienes la cifra equivalente a la imagen que quieres mostrar

Luego pasas esa variable al html

echo '<img src="resources/estrella'.$img.'.jpg" />';

Voila, siempre se mostrara la cantidad de estrellas que representa la valoración.

PD: Hago lo de multiplicarlo *10 porque en algunos sistemas operativos decimales se muestran con "," en otros con "." entonces para evitar conflicto nos los quitamos de encima.

Un saludo
La verdad que me acabo de quedar un poco sorprendido por la rapida respuesta que me diste.
Ante todo muchas gracias por ella.
El problemilla es que con el tema de las funciones y el php estoy todabia un poco pez.
Sabes is existe algun tutorial o algo que puedar ayudarme a llevar acabo todo lo que me comentaste.
Muchas gracias nuevamente.
__________________
http://www.paxarindesign.es
  #4 (permalink)  
Antiguo 11/04/2014, 14:14
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: Mostrar valoracion media y mostrar imagen

a ver si te sirve esto?

https://github.com/wbotelhos/raty

http://wbotelhos.com/raty/
  #5 (permalink)  
Antiguo 11/04/2014, 14:17
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años
Puntos: 10
Respuesta: Mostrar valoracion media y mostrar imagen

Es mi trabajo que ejecuto cada dia jaja, mi cabeza ya se ha acostumbrado a pensar de manera logica. Nunca aceptando un hecho sino interpretando como se habrá realizado...Soy raro, vamos.

Me da pereza buscar un tutorial, te lo hago por encima aqui

Imaginate que tienes una carpeta recursos y ahi tienes las 11 imagenes. Las imagenes llevan los nombres

estrella0.jpg (0 estrellas alumbradas)
estrella5.jpg (0.5 estrellas alumbradas)
estrella10.jpg (1 estrella alumbradas)
estrella15.jpg (1.5 estrellas alumbradas)
estrella20.jpg (2 estrellas alumbradas)
estrella25.jpg (2.5 estrellas alumbradas)
etc..así hasta llegar a las 5 estrellas, buscate las estrellas

Luego tenemos una tabla mysql que recoge todas las valoraciones de un perfil, la llamaremos valoraciones

id id_perfil val
1 1 0.5
2 1 2.5
3 1 4
4 1 5.5

Para hacerlo facil asigné todas las entradas del ejemplo al mismo perfil.

La función php seria la siguiente mas o menos (tu te la ajustas)

Código PHP:
function get_val_media ($usid)
{
    
//Código para verificar que la id es un numero
     
if(!is_numeric($usid)) return false;
     
$usid = (int)$usid;
      
     
//Vamos a esperar 1 solo resultado, la media, por tanto limitamos a 1
     
$q $mysqli->query("Select AVG(val) as media FROM valoraciones WHERE id='$usid' LIMIT 1");

     
//Obtenemos la media de la query
     
$row $q->fetch_assoc();
     
$avg $row['media'];

     
//Redondemos la media a medio decimal
     
$star round($avg 2) / 2;

     return 
$star;

Ojo, el código lo hice aquí sobre la marcha, no está testeado y puede tener fallos (sorry)

Ahora, en el html, si no usas motor de plantilla que hace que se pase toda la información en forma de un array al html, hacemos lo siguiente, algo sucio pero si practicas está bien.

$img = get_val_media ($usid)
echo '<img src="resources/estrella'.$img.'.jpg" />';

Donde $usid es la variable del usuario del que quieres la información

Si necesitas algo más informa.

Etiquetas: media, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:11.