Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

votacion 5 estrellas

Estas en el tema de votacion 5 estrellas en el foro de Bases de Datos General en Foros del Web. hola a todos, queria agregar a las noticias un sistema de votacion 5 estrellas las tablas que hice son: Código PHP: noticias idnoticias  titulo descripcion  ...
  #1 (permalink)  
Antiguo 15/08/2010, 21:51
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 16 años, 9 meses
Puntos: 2
votacion 5 estrellas

hola a todos, queria agregar a las noticias un sistema de votacion 5 estrellas

las tablas que hice son:

Código PHP:
noticias

idnoticias 
titulo
descripcion 
y la tabla votacion es:

Código PHP:
votacion

idvotacion
idnoticias
votacion 
votacion es de 1 a 5

el problema que tengo es que quiero liste las noticias y al lado la cantidad de gente que voto junto con la media
hasta ahi todo bien

con esta consulta es conseguido a media lo que quiero

Código MySQL:
Ver original
  1. SELECT noticias.idnoticias, noticias.titulo, noticias.descripcion, count( vota.votacion ) , avg( vota.votacion )
  2. FROM noticias noticia, votacion vota
  3. WHERE vota.idnoticias = noticias.idnoticia
  4. group by noticias.idnoticias
el problema es que si yo tengo noticias que no han sido votadas por la gente no me las muestra, solo me muestra las noticias que hay votos.

como puedo hacer la consulta para que me devuelva todas las noticias, y en la que hay votos me mueste la cantidad de votos, y la media

desde ya muchas gracias saludos.
__________________
DJJJ

Última edición por DJJJ; 15/08/2010 a las 23:09
  #2 (permalink)  
Antiguo 15/08/2010, 23:11
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.339
Antigüedad: 12 años, 5 meses
Puntos: 177
Respuesta: votacion 5 estrellas

Hola no sé si es la forma correcta de hacerlo pero si se que funciona, je je


Código PHP:
<?php

//consultamos la tabla noticias
$consulta_noticias=mysql_query("select * from noticias ",$conexion);

//recorremos todas las noticias con un while

while ($resultado_consulta_noticias=mysql_fetch_array($consulta_noticias)){
    
    
//consultamos los registros de la tabla votacion en donde el idnoticias es igual al idnoticias del while anterior
    
$consulta_votacion =mysql_query("select * from votacion where idnoticias = '".$resultado_consulta_noticias['idnoticias']."' ",$conexion);
    
//preguntamos cuantos registros hay con ese idnoticias
    
$total_de_registros_consulta_votacion=mysql_num_rows($consulta_votacion);
    
    
    
    
//mostramos el titulo de la noticia , un espacio, y el numero de votos xD
    
echo $resultado_consulta_noticias['titulo']." ".$total_de_registros_consulta_votacion;
    
    
}

?>
__________________
la la la
  #3 (permalink)  
Antiguo 15/08/2010, 23:22
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 16 años, 9 meses
Puntos: 2
Respuesta: votacion 5 estrellas

excelente truman_truman, funciona muy bien

muchisimas gracias por tu tiempo

ahora mi pregunta es si es posible hacerla solo en un select

o si o si hay que recurrir a una nueva consulta dentro del ciclo while ?
__________________
DJJJ
  #4 (permalink)  
Antiguo 15/08/2010, 23:29
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.339
Antigüedad: 12 años, 5 meses
Puntos: 177
Respuesta: votacion 5 estrellas

jejeje esa tambien es mi duda, por eso decía antes que no sé si es la forma correcta, jeje, me gustaria a mi tambien saber si se puede hacer, supongo que si y supongo que si se puede , consumiría menos recursos...

Saludos amigo
__________________
la la la
  #5 (permalink)  
Antiguo 15/08/2010, 23:41
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 16 años, 9 meses
Puntos: 2
Respuesta: votacion 5 estrellas

sii, igual gracias para salir del pasa esta bien, pero seria bueno si alguien sabe de otra forma como tu dices para utilizar menos recursos.

saludos
__________________
DJJJ
  #6 (permalink)  
Antiguo 15/08/2010, 23:44
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.339
Antigüedad: 12 años, 5 meses
Puntos: 177
Respuesta: votacion 5 estrellas

Si , en realidad no se si son menos recursos o es que se ejecuta mas rapidos la consulta. pero bueno, yo mis paginas las tengo asi, jeje es hasta donde pude aprender.. SAludos
__________________
la la la
  #7 (permalink)  
Antiguo 15/08/2010, 23:56
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 16 años, 9 meses
Puntos: 2
Respuesta: votacion 5 estrellas

gracias truman_truman, quedamos a la espera haber si hay otra forma.

saludos
__________________
DJJJ
  #8 (permalink)  
Antiguo 16/08/2010, 00:24
 
Fecha de Ingreso: octubre-2005
Mensajes: 407
Antigüedad: 16 años, 9 meses
Puntos: 2
Respuesta: votacion 5 estrellas

no se si estara bien, alguien que me corrija si esta bien, por lo menos funciona.

lo que hice fue

Código MySQL:
Ver original
  1. SELECT noticias.idnoticias, noticias.titulo, noticias.descripcion, count( vota.votacion ) , avg( vota.votacion )
  2. FROM noticias noticia
  3. LEFT JOIN votacion vota.idnoticias = noticias.idnoticia
  4. GROUP BY noticias.idnoticias

repito no se si sera la mejor opcion pero funciona, espero respuestas.

saludos
__________________
DJJJ

Etiquetas: estrellas, votacion
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 16:04.