Foros del Web » Programando para Internet » PHP »

sistema de puntuacion....HELP ME!!

Estas en el tema de sistema de puntuacion....HELP ME!! en el foro de PHP en Foros del Web. lo que quiero hacer es un sistema de puntuacion(del 1 al 10 por ejemplo)pero se me presentan dos problemas,1 y el mas importante como podria ...
  #1 (permalink)  
Antiguo 11/06/2004, 13:27
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 20 años, 6 meses
Puntos: 0
sistema de puntuacion....HELP ME!!

lo que quiero hacer es un sistema de puntuacion(del 1 al 10 por ejemplo)pero se me presentan dos problemas,1 y el mas importante como podria hacerlo para que un usuario registrado solamente pueda votar una vez y en caso de volver a votar se sustituya su puntuacion anterior por la nueva,2 si se guarda el registro de la puntuacion en la tabla usuarios como puedo hacerlo para que ese articulo haga una "media"de todos los votos de todos los usuarios registrados?

No se si me explique:D gracias:D
  #2 (permalink)  
Antiguo 11/06/2004, 14:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Yo guardaría las votaciones en otra tabla relacionada con el "ID" de tu usuario.

votaciones
id_votación
id_usuario
voto

Como dices que tienes usuarios registrados .. en todo momento podras averigüar ese ID_usuario para hacer el INSERT correspondiente a tu tabla "votaciones" .. Por lo mismo puedes hacer una consulta a esa tabla para ver si ese ID_usuario ya está en tu tabla .. si está es que ya votó y tu veras si le dejas votar o no .. (lo ideal es que no le dejes votar más)

A su vez .. ese sistema sería poco versatil .. Tienes que definir una fecha de expiración o finalización de la votación .. para que puedan votar nuevamente en otra votación que puedas hacer. Bajo la misma filosofía podrías tener otro campo más para guardar que "votación" peternet el voto y tener N votaciones a la vez o ya vencidas (por eso esa fecha de "fin de votaciones" ..)

Sería algo así:

votacion
id_votacion (autoincremental y único)
nombre_votacion
fecha_fin_votos (DATETIME)

(podrias definir fecha de inicio también y así "programar" N votaciones en el tiempo ..)

votos
id_votos (autoincremental y único)
id_usuario
id_votacion
voto

Todo lo demas es SQL para hacer tus consultas a esas tablas. La media se obtiene con AVG() si mal no recuerdo de Mysql .. algo tipo:

Código PHP:
<?
//conectas a tu BD .. etc
$sql="SELECT AVG(voto) AS media FROM votos WHERE id_votacion='laquesea'";
$resultado=mysql_query($sql);
$media=mysql_result($resultado,0,"media");
echo 
$media;
?>
Para "votar" .. simplemente haces un formulario HTML común con tus botonoes "radio" de mismo nombre todos .. todo bajo un formulario que apunte a tu script PHP que hará:

1) verficar si existe el ID_usuario en la tabla "votos":
$sql="SELECT COUNT(*) FROM votos WHERE id_usuario='$id_usuario'";

2) si existe .. le dices que no puede votar ... (incluso esta verificación la puedes hacer para mostrar o no el formulario de votación en tu página a los que ya votaron y así mostrarle los resultados .. pues ya votó).

3) registrar el voto si corresponde.

El script para ver la media y sacar porcentajes si lo necesitas es sólo otra consulta SQL tipo la del ejemplo que también puse ..


Un saludo,

Última edición por Cluster; 11/06/2004 a las 14:29
  #3 (permalink)  
Antiguo 11/06/2004, 14:36
 
Fecha de Ingreso: mayo-2004
Mensajes: 571
Antigüedad: 20 años, 6 meses
Puntos: 0
ok,gracias cluster me referia mas bien a un sistema para poder votar un producto :D mas que a una encuesta con fecha limite,pero la verdad es que todo lo que me has puesto me sirve ;) Muchiiiiiisimas Gracias :D me sirve de mucho :Dcuando tenga un plis lo pruebo y contare que tal me ha ido :D

P.D: Gracias por todo no solo por esto ;)

Última edición por Newphp; 11/06/2004 a las 14:37
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 12:10.