sistema de votacion en php y mysql

bueno no me sale el formulario en este script si alguien save 1 2 3 4 5 6 7 8 9 10 es raro que no me salga siempre me salen los echos de los escripts gracias y un saludo

<?php 
// conectar con la db
mysql_connect("localhostl", "usuario", "contraseña") or die(mysql_error()); 
mysql_select_db("base") or die(mysql_error());  
// seleccionamos la tb 
$data = mysql_query("SELECT * FROM tabla") or die(mysql_error()); 
//Sólo se ejecuta este código si el usuario ha hecho clic en un enlace de votación 
if ( $mode=="vote") {  
//Si el usuario ya ha votado en lo particular, no se les permite votar de nuevo 
$ cookie = "MySite $id"; 
if(isset($_COOKIE[$cookie])) { 
echo "Usted ya a votado para este juego<p>"; 
}  
//De lo contrario, les decimos que ya han votado 
else { 
$month = 2592000 + time(); setcookie(Mysite.$id, Voted, $month); 
//Luego actualizamos la información sobre la votación mediante la adición 1 al total de los votos y la adición de su voto (1,2,3, etc) para la calificación total 
mysql_query ("UPDATE vote SET total = total+$voted, votes = votes+1 WHERE id = $id"); 
echo "Su voto ha sido emitido <p>"; 
} 
}  
//pasamos los datos por un bucle while 
while($ratings = mysql_fetch_array( $data )) {  
//Esto genera el nombre de los que votan entre comillas 
echo "Name: " .$ratings['name']."<br>"; 
//Esto calcula el ranking de los que votan y luego lo devuelve redondeado a un decimal 
$current = $ratings[total] / $ratings[votes]; 
echo "Current Rating: " . round($current, 1) . "<br>";  
//insertamos los datos en los campos de la tabla vote previo paso por el formulario Votar : Ranking 
mysql_query ("INSERT INTO vote ('name, total, votes') VALUES ('First item', 45, 10), ('Second item', 15, 4), ('Third thing', 25, 7), ('The Forth', 20, 5), ('Fifth Thing', 0, 0)"); 
//Esto crea 10 enlaces para votar un 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 o la calificación para cada enlace en particular 
echo "<p>Votar : Ranking</p>"; 
echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=1&id=".$ratings[id].">Vote 1</a> | </p>"; 
echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=2&id=".$ratings[id].">Vote 2</a> | </p>"; 
echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=3&id=".$ratings[id].">Vote 3</a> | </p>"; 
echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=4&id=".$ratings[id].">Vote 4</a> | </p>"; 
echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=5&id=".$ratings[id].">Vote 5</a> | </p>"; 
echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=6&id=".$ratings[id].">Vote 6</a> | </p>"; 
echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=7&id=".$ratings[id].">Vote 7</a> | </p>"; 
echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=8&id=".$ratings[id].">Vote 8</a> | </p>"; 
echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=9&id=".$ratings[id].">Vote 9</a> | </p>"; 
echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=10&id=".$ratings[id].">Vote 10</a></p>";
} 
?>
nexuxirc escribió:Hola, podrias explicarte mejor? de que se trata?
Hola nexuxirc puse el codigo del script de votacion pero no salio haora lo e vuelto a poner y haora si que se puso un saludo
Tienes las tablas de este script? o de donde lo bajaste?, Te pregunto esto por que todavia no me sale ningun error, tambien he creado la base de datos "base", mas la tabla.

Ahora te muestro tu codigo, pero con la mejora de incluir el archivo de configuracion a la base de datos en otro archivo. Hacemos esto para dejar mas limpio el codigo que vas a usar.

El archivo de configuracion, "cnx.php" Sacados de mi tutorial basico

<?php
/* Crear una conexion a la base de datos con PHP */
# Hay muchas maneras de crear una conexion a la base de datos para su posterior llamado para nuestras funciones o paginas.
# Aqui veremos, la mas simple, crear apartir de variables. Pero como dije, hay muchas maneras.




// Definimos las variables
$host_pruebas = "localhost"; // Es donde tu servidor reside, osea en tu maquina
$data_pruebas = "base"; // Es donde haremos las consultas, la base de datos, el nombre de la base de datos
$user_pruebas = "  "; // El usuario que maneja la base de datos
$password_pruebas = "  "; // La contraseña de la base de datos




// Ahora creamos, la consulta para conectarnos
// Tip: Acuerdense que sin las comillas simples o dobles
$pruebas = mysql_connect($host_pruebas, $user_pruebas, $password_pruebas) or trigger_error(mysql_error(), E_USER_ERROR);
// Seleccionamos la base de datos y ponemos un mensaje
// Pero para usar, debemos quitar el mensaje
mysql_select_db($data_pruebas, $pruebas);
?>

Ahora vamos a tu codigo.

Incluimos el archivo "cnx.php" de esta manera:

require_once "cnx.php"

En resume tu codigo un poco mas limpio

<?php
 /*conectar con la db*/

require_once "cnx.php";

//Sólo se ejecuta este código si el usuario ha hecho clic en un enlace de votación

if ($mode=="vote") 
{  //Si el usuario ya ha votado en lo particular, no se les permite votar de nuevo 
$cookie = "MySite $id"; if(isset($_COOKIE[$cookie])) { echo "Usted ya a votado para este juego<p>"; }  //De lo contrario, les decimos que ya han votado
else
{ 
$month = 2592000 + time(); setcookie(Mysite.$id, Voted, $month); 
//Luego actualizamos la información sobre la votación mediante la adición 1 al total de los votos y la adición de su voto (1,2,3, etc) para la calificación total
mysql_query ("UPDATE vote SET total = total+$voted, votes = votes+1 WHERE id = $id"); echo "Su voto ha sido emitido <p>";
} 
}  //pasamos los datos por un bucle while
while($ratings = mysql_fetch_array( $data )) 
{
 //Esto genera el nombre de los que votan entre comillas 
echo "Name: " .$ratings['name']."<br>"; 

//Esto calcula el ranking de los que votan y luego lo devuelve redondeado a un decimal 
$current = $ratings[total] / $ratings[votes]; echo "Current Rating: " . round($current, 1) . "<br>";  //insertamos los datos en los campos de la tabla vote previo paso por el formulario Votar : Ranking

//Esto crea 10 enlaces para votar un 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 o la calificación para cada enlace en particular

mysql_query ("INSERT INTO vote ('name, total, votes') VALUES ('First item', 45, 10), ('Second item', 15, 4), ('Third thing', 25, 7), ('The Forth', 20, 5), ('Fifth Thing', 0, 0)"); 

echo "<p>Votar : Ranking</p>"; echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=1&id=".$ratings[id].">Vote 1</a> | </p>"; echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=2&id=".$ratings[id].">Vote 2</a> | </p>"; echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=3&id=".$ratings[id].">Vote 3</a> | </p>"; echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=4&id=".$ratings[id].">Vote 4</a> | </p>"; echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=5&id=".$ratings[id].">Vote 5</a> | </p>"; echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=5&id=".$ratings[id].">Vote 6</a> | </p>"; echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=3&id=".$ratings[id].">Vote 7</a> | </p>"; echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=4&id=".$ratings[id].">Vote 8</a> | </p>"; echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=5&id=".$ratings[id].">Vote 9</a> | </p>"; echo "<p><a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=5&id=".$ratings[id].">Vote 10</a></p>";
} 
?>

Tendrias que probar y decirme si como te ha resultado.

Estamos a las ordenes.
la tabla es esta

CREATE TABLE vote (
id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30),
total INTEGER,
votes INTEGER
)

la configuracion la tengo en include ("config.php");
me gustan mas los includes que los requires no hay mucha diferencia pero creo que son mejores
no da ningun error lo que no funciona no salen los echos nada de nada es vastante raro
nose normalmente los echos deverian de verse gracias por tu ayuda nexuxirc el script esta igual no a camviado nada
Bueno, segun el comentario dentro del codigo, dice si se da algun click en él. O sea...

Tú estas en una pagina vervideos.php y dentro de ese pagina se encuentra un enlace a ese archivo que le vamos a llamar cs.php

y dentro de cs.php

esta el codigo en cuestion y ahi deberia dar resultado.

No se si me entendes...
Me refiero, a esto.

Dentro de vervideos.php esta esta porcion de codigo:

<a href="c.php?id=<?php echo $vote?>">Votar</a>

Y de esa forma, se ejecuta esa parte del codigo.

Me explico?
en una pagina diferente si lo entiendo diferente archivo los votos van en una pagina de juegos y quiero que se vean en otra diferente pero deverian verse los echos hay algo mal en este codigo y no es un error
claro, que va a funcionar, pero lo unico que debes hacer es pasarle las variables...

ahi te muestro


Pero debo dormir ya, mañana continuamos, ok y tratare de hacer mas completo
Hola, tuve que resolver ciertos detalles pero al fin lo pude solucionar, ante todo es mejor siempre ordenar los codigos con comentarios, y tambien los espaciados entre los codigos. Tambien he notado que ciertos Echo estaban en mayusculas, es mejor que esten en minusculas asi: echo .Como dije, ordenar ante todo para un futura correccion.

La conexion

<?php
/* Crear una conexion a la base de datos con PHP */
# Hay muchas maneras de crear una conexion a la base de datos para su posterior llamado para nuestras funciones o paginas.
# Aqui veremos, la mas simple, crear apartir de variables. Pero como dije, hay muchas maneras.

// Definimos las variables
$host_pruebas = "localhost"; // Es donde tu servidor reside, osea en tu maquina
$data_pruebas = "votaciones"; // Es donde haremos las consultas, la base de datos
$user_pruebas = "usuario"; // El usuario que maneja la base de datos
$password_pruebas = "lacontraseña"; // La contraseña de la base de datos

// Ahora creamos, la consulta para conectarnos
// Tip: Acuerdense que sin las comillas simples o dobles
$pruebas = mysql_connect($host_pruebas, $user_pruebas, $password_pruebas) or trigger_error(mysql_error(), E_USER_ERROR);
// Seleccionamos la base de datos y ponemos un mensaje
// Pero para usar, debemos quitar el mensaje
mysql_select_db($data_pruebas, $pruebas);
?>

Ahora viene la parte mas tediosa, pero una vez ordenado y comentado queda mucho mas facil leer. El codigo completo

<?php 
 #------- Incluyendo la configuracion de la base de datos
include "crearCX.php";

#------- Trayendo todos datos de la base de datos
  $data = mysql_query("SELECT * FROM vote") or die(mysql_error()); 
  
#------- Ahora, a hacer el bucle
 while($ratings = mysql_fetch_array( $data )) 
 { 
 
#------- Insertando el nombre
 echo "<b>Video / Pelicula </b>: " .$ratings['name']."<br>"; 
 
#------- Calcular los ratings
$current = $ratings['total'] / $ratings['votes']; 
 echo "<i>Votos actuales</i>: " . round($current, 2) . "<br>";
 
#------- Crear los links para votar
echo "VOTAME! :  "; 
echo "<a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=1&id=".$ratings['id'].">Votar Opcion #1</a>  | ";
echo "<a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=2&id=".$ratings['id'].">Votar Opcion #2</a>  | ";
echo "<a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=3&id=".$ratings['id'].">Votar Opcion #3</a>  | ";
echo "<a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=4&id=".$ratings['id'].">Votar Opcion #4</a>  | ";
echo "<a href=".$_SERVER['PHP_SELF']."?mode=vote&voted=5&id=".$ratings['id'].">Votar Opcion #5</a>  | ";

#------- Divisorias
echo "<hr>";

#------- Fin del bucle
 } 

#------- Creando las variables y comenzando a preguntar al usuario si ya voto
if(isset($_GET["mode"])) 
{

# Es aqui, que tenemos que crearle las variables para que funcione.
$mode=$_GET["mode"];
$voted = $_GET[voted];
$id = $_GET[id];

# Alertas
$yavotaste = "Disculpanos, pero ya votaste<p>";
$gracias  = "Gracias por tu Voto<p>";

#------- Si ya votamos, NO se nos permite mas votar
  	if(isset($_COOKIE[$cookie])) 
 		{ 
 		echo $yavotaste; 
 		} 
 
  	else 
 		{ 
 		$month = 2592000 + time(); 
 		$cookie= "Mysite$id"; // Quitamos ciertos valores como ser, mes y otros datos

#------- Insertando y actualizamos la base de datos
mysql_query ("UPDATE vote SET total = total+".$voted.", votes = votes+1 WHERE id = ".$id.""); 
 		echo $gracias ; 
 		} 
 } 
 ?>


Habia muchas variables que faltaban, como ser:

# Es aqui, que tenemos que crearle las variables para que funcione.
$mode=$_GET["mode"];
$voted = $_GET[voted];
$id = $_GET[id];

Y el setcookie estaba incorrecto, la manera es de esta forma:

else 
 		{ 
 		$month = 2592000 + time(); 
 		$cookie= "Mysite$id"; // Quitamos ciertos valores como ser, mes y otros datos


Y tambien faltaban cerrar muchas comillas simples o dobles

mysql_query ("UPDATE vote SET total = total+".$voted.", votes = votes+1 WHERE id = ".$id."");


Espero que te funcione!, y para todos los que deseen descargar el codigo completo les dejo.

Codigo completo
http://pablodelrio.zzl.org/votaciones/votaciones.zip

Demostracion
http://pablodelrio.zzl.org/votaciones/

Espero que con esto te pueda funcionar


Estoy a las ordenes.
muy bueno tu script para votaciones, podrias agregar una tabla para guardar la ip del votante y un identificador de la pelicula, luego antes de permitir votar, chequeas si ya voto ese visitante.