Foros del Web » Programando para Internet » PHP »

Sistema de valoración: ¿cómo sumar registros a un campo de una BD?

Estas en el tema de Sistema de valoración: ¿cómo sumar registros a un campo de una BD? en el foro de PHP en Foros del Web. Hola, Necesito hacer un simple sistema de votación, del 1 al 5 por ejemplo, para mis artículos en php. ¿Cómo puedo hacer para que se ...
  #1 (permalink)  
Antiguo 09/02/2010, 15:28
 
Fecha de Ingreso: diciembre-2007
Ubicación: Buenos Aires
Mensajes: 328
Antigüedad: 16 años, 4 meses
Puntos: 1
Sistema de valoración: ¿cómo sumar registros a un campo de una BD?

Hola,

Necesito hacer un simple sistema de votación, del 1 al 5 por ejemplo, para mis artículos en php. ¿Cómo puedo hacer para que se sumen los registros en un mismo campo de la base de datos? Por ejemplo, voy yo y voto 5, y necesito que cuando venga otro usuario y vote 1, quede guardado 6.

¿Se puede?

Gracias desde ya!

saludoss
  #2 (permalink)  
Antiguo 09/02/2010, 15:32
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Sistema de valoración: ¿cómo sumar registros a un campo de una BD?

UPDATE articulo SET rating = rating + $voto

:3 saludos
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 09/02/2010, 15:33
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Sistema de valoración: ¿cómo sumar registros a un campo de una BD?

Perfectamente y muy sencillo. Pero si quieres calcular una media vas a tener que guardar un total de votos.
Para ello tienes que utilizar la sentencia UPDATE de mysql:

Código PHP:
Ver original
  1. //Primero recoges los votos actuales y luego:
  2.  
  3. $votos=$votosActuales+$votoNuevo;
  4. $sql="UPDATE tabla SET votos=".$votos." WHERE entrada=".$entrada;
Edito:
La respuesta de arriba está mejor ;)
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #4 (permalink)  
Antiguo 09/02/2010, 15:37
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años, 1 mes
Puntos: 14
Respuesta: Sistema de valoración: ¿cómo sumar registros a un campo de una BD?

Con una sentencia SQL de este estilo:
Código SQL:
Ver original
  1. UPDATE articulos SET votos=votos+{$voto} WHERE id={$id}

Edit: Vaya, esto no avisa cuando hay respuestas anteriores :P
  #5 (permalink)  
Antiguo 09/02/2010, 15:39
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Sistema de valoración: ¿cómo sumar registros a un campo de una BD?

si quieres sacar la media tambien necesitas el total como dijo @CHuLoSoY

seria algo asi

Código sql:
Ver original
  1. UPDATE articulo
  2. SET rating = rating + $voto, totalvotos = totalvotos + 1
  3. WHERE id = $id

luego sacas la media dividiendo los votos por el total de votos :3
__________________
More about me...
~ @rhyudek1
~ Github
  #6 (permalink)  
Antiguo 09/02/2010, 16:10
 
Fecha de Ingreso: diciembre-2007
Ubicación: Buenos Aires
Mensajes: 328
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Sistema de valoración: ¿cómo sumar registros a un campo de una BD?

¡Buenísimo! Muchísimas gracias por las respuestas. A la noche lo pruebo y les cuento como me fue.

Una consulta más. Si luego quiero ordenar los resultados por el que tiene mejor promedio (votos / cant votos) al de menor promedio, ¿cómo sería el SELECT para listarlo?

Gracias!!

Un abrazo.
  #7 (permalink)  
Antiguo 09/02/2010, 17:05
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 2 meses
Puntos: 27
Respuesta: Sistema de valoración: ¿cómo sumar registros a un campo de una BD?

ORDER BY rating DESC

yo creo que por la media seria mejor o sea tu rating.. pero si quieres por la cantidad de votos..

ORDER BY totalvotos DESC

Etiquetas: bd, registros, sitemap, campos
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:43.