Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Votos a usuarios

Estas en el tema de Votos a usuarios en el foro de PHP en Foros del Web. Hola a todo estoy tratando de hacer un script para dar votos a usuarios, este es el scrip Código PHP: <?php include  'conn.php' ; $cons   ...
  #1 (permalink)  
Antiguo 25/05/2013, 17:05
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Pregunta Votos a usuarios

Hola a todo estoy tratando de hacer un script para dar votos a usuarios, este es el scrip

Código PHP:
<?php

include 'conn.php';

$cons  "SELECT * FROM voto";
$resul mysql_query ($cons) or die(mysql_error());
$fila  mysql_fetch_array ($resul);

$user "seva"//este es quien de la da el voto
$decs "pepe"//quien obtiene el voto

$consulta "INSERT INTO voto SET user='".$user."' ON DUPLICATE KEY UPDATE voto=voto+1";

echo 
'<a href="prueba34.php?'.urlencode($consulta).'">votar</a>';

?>
El problema es que no inserta los votos y no se por que es... espero me ayuden y gracias...


pd: esta es la tabla

--

CREATE TABLE IF NOT EXISTS `voto` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`users` varchar(10) NOT NULL,
`voto` int(10) NOT NULL,
`des` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
__________________
Zreep
  #2 (permalink)  
Antiguo 25/05/2013, 17:34
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Votos a usuarios

Pues no inserta los votos porque tienes varios campos que no deben ser nulos y no los estás especificando en la consulta.

Aparte, parece que sólo creas la consulta pero no la ejecutas con mysql_query() o alguna mejor (msqli o PDO).

Luego, tu tabla no está bien planeada, porque en la consulta parece que intentas que la clave primaria sea usuario-que-vota + usuario-que-recibe y tu clave primaria actual es id autoincrementable.

Plantea nuevamente cómo lo vas a trabajar, crea el código adecuado y, si siguen los problemas, aquí te esperamos para tratar de ayudar.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 25/05/2013, 19:08
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Votos a usuarios

Gracias Triby, ya lo solucione. Habia leido mal el objetivo. Ya que un usuario x le da un voto a otro y va incrementando un id, el problema ahora es sumar esos votos. Por ejemplo:

id users voto des
1 pepe 10 seva
2 pepe 5 seva
3 seva 7 nico
4 nico 10 seva


como puedo hacer para sumar los votos de cada usuario y dejar un resultado asi;

pepe tiene 15 votos
seva tiene 7 votos
nico tiene 10 votos

Gracias
__________________
Zreep
  #4 (permalink)  
Antiguo 25/05/2013, 20:26
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Votos a usuarios

Que estoy haciendo mal? encontre esto:

Código PHP:
<?php

include 'conn.php';

$sql  "SELECT users, SUM(voto) FROM voto GROUP BY users";
$res mysql_query($sql);
$can mysql_num_rows($res);

while(
$fila mysql_fetch_array($res)){

?>

<?php echo $fila['users'];?> tiene <?php echo $fila['voto'];?>
<br />
<?php }

mysql_close();
y me tira este error: seva tiene
Notice: Undefined index: voto in ...\prueba34.php on line 24
__________________
Zreep
  #5 (permalink)  
Antiguo 25/05/2013, 20:37
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 14 años, 6 meses
Puntos: 12
Respuesta: Votos a usuarios

Solucionado, me faltaba el "AS" de voto...

Dejo bien el codigo para que lo usen. El objetivo es hacer que sume los datos de un mismo usuario... ejemplo

Código:
id    users   voto   des
1    seva    10    pepe
1    luca    10    seva
1    luca    10    pepe
1    pepe    40    luca
1    pepe    5    seva
El resultado es:
seva tiene 10 votos
luca tiene 20 votos
pepe tiene 45 votos


Base de datos
Código:
CREATE TABLE IF NOT EXISTS `voto` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`users` varchar(10) NOT NULL,
`voto` int(10) NOT NULL,
`des` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
script
Código PHP:
<?php

include 'conn.php';

$sql  "SELECT users, SUM(voto) AS voto FROM voto GROUP BY users";
$res mysql_query($sql);
$can mysql_num_rows($res);

while(
$fila mysql_fetch_array($res)){

?>

<?php echo $fila['users'];?> tiene <?php echo $fila['voto'];?> votos
<br />
<?php }

mysql_close();
?>
Bueno espero los ayude... Gracias y nos vemos...
__________________
Zreep

Etiquetas: mysql, select, sql, tabla, usuarios, votos
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 15:42.