Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/04/2014, 14:17
Qazser
 
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.