Sistema de votaciones

Bueno ... en esta ocacion construiremos un pequeño sistema de votacion.

REQUERIMIENTOS: Servidor que soporte php y base de datos(SQL)

1.- Para comenzar es nesesario acceder a nuestra base de datos y crear las tablas nesesarias para que se ejecute nuestro Script..

CREATE TABLE `encuesta_blt` (
`id_encuesta` varchar(5) NOT NULL default '',
`id_opcion` varchar(5) NOT NULL default '',
`ip` varchar(15) NOT NULL default '' )
TYPE=MyISAM;


2.- Una vez creadas las tablas, procederemos a crear al archivo que contendra los parametros de la encuesta..al igual que los datos de nuestra base de datos ... lo llamaremos "encuesta_sm.php"
:?:NOTA-->Sustituye:LOCALHOST, USUARIO, PASSWORD, BASE_DE_DATOS,..por tus datos
-----------------------------
:?:NOTA2-->En la parte del script que indica //PREGUNTAS Y OPCIONES, ahi colocamos nuestras preguntas y respuestas, manteniendo los parametros y signos...podemos asignar tantas preguntas como querramos, siempre y cuando mantengamos el orden e identificativo de cada pregunta (1,2,3, etc..)

//"encuesta_sm.php"

<?
mysql_connect('LOCALHOST','USUARIO','PASSWORD')or die('ERROR EN LA CONEXION :'.mysql_error());
mysql_select_db('BASE_DE_DATOS')or die('ERROR AL ESCOJER LA BD :'.mysql_error());

function show_encuesta($id_ENCUESTA,$proteccion_IP){
//PREGUNTAS Y OPCIONES
$encuesta[1]=array('¿Que te parece este Script?',array('Exelente','Bueno','Regular','Malo','Pesimo'));
$encuesta[2]=array('¿Que te parece la web CCTW?',array('Exelente','Buena','Regular','Mala','Pesima'));
$encuesta[3]=array('¿Que te parece Santuario Maldito?',array('Exelente','Bueno','Regular','Malo','Pesimo'));
//END
if (!array_key_exists($id_ENCUESTA,$encuesta)) return ('El id de la encuesta no se encuentra disponible');
else
$pregunta_de_la_encuesta = array_shift($encuesta[$id_ENCUESTA]);
$opciones_de_la_encuesta = array_pop ($encuesta[$id_ENCUESTA]);
if(isset($_POST)){
$ssqls=mysql_query('SELECT * FROM encuesta_blt WHERE ip="'.$REMOTE_ADDR.'"')or die(mysql_error());
if($proteccion_IP && mysql_num_rows($ssqls)>=1){
$html_encuesta='<font color="#FF0000" face="tahoma" size="2">Usted ya voto , Gracias! </font>';
}
else {mysql_query('INSERT INTO encuesta_blt VALUES("'.$id_ENCUESTA.'","'.$_POST.'","'.$REMOTE_ADDR.'")')or die(mysql_error()); }
}

$ssql=mysql_query('SELECT * FROM encuesta_blt WHERE id_encuesta="'.$id_ENCUESTA.'"')or die(mysql_error());
$total_votos=mysql_num_rows($ssql);

// IMPRIMIR LOS RESULTADOS.
$html_encuesta.='<form action="'.$_SERVER[REQUEST_URI].'" method="POST">';
$html_encuesta.= ''.$pregunta_de_la_encuesta.'';
$html_encuesta.='
';
foreach($opciones_de_la_encuesta as $KEY => $OPCION){
$ssql=mysql_query('SELECT * FROM encuesta_blt WHERE id_encuesta="'.$id_ENCUESTA.'" and id_opcion="'.$KEY.'"')or die(mysql_error());
$votos_x_opcion=mysql_num_rows($ssql);
$estimar_porcentaje= @round($votos_x_opcion*100/$total_votos,1);
$html_encuesta.= '<input name="opcion" type="radio" value="'.$KEY.'"';
if($_POST==$KEY && isset($_POST)){$html_encuesta.='checked'; }

$html_encuesta.= '>'.$OPCION.' '.$estimar_porcentaje.'% Votos: '.$votos_x_opcion.'
';
}

$html_encuesta.='
<input type="submit" value="Votar">';
$html_encuesta.='</form>';
return $html_encuesta;
}
?>



3.- Ahora viene al paso final ,, que es invocar una de las encuestas que creamos en el codigo anterior mediante un include, para hacer eso pegamos el siguiente codigo en la parte de la web donde queremos que aparezca la encuesta ... cambiando el numero 1 por la pregunta que nosotros deseemos mostrar...

<?
include('encuesta_sm.php');
echo show_encuesta(1,true);
?>

------------------------------------
NOTA---> Recordemos que en el codigo "encuesta_sm.php", definimos varias preguntas con sus respectivas opciones, cada pregunta estaba definida por un numero (1,2,3, etc...) , en el include vemos que tiene el numero "1" ..esto indica que la encuesta mostrara la pregunta numero 1 con sus respectivas opciones... si queremos mostrar otra pregunta , solo cambiamos el numero "1", por el numero identificativo de esa pregunta ...

VER DEMO DE LA ENCUESTA
------------------------------------------------
Espero sea de su agrado y les sirva ... SUERTE !!!!
------------------------------------------------
Dudas?? Sugerencias?? Comentarios?? --> No duden en contactarme: [correo eliminado]
-----------------------------------------------
AMIGO SE MAS ESPECIFICO SI Y ESTO DE LAS ENCUESTA PARA SIVER O WHAT

Y EL CODIGO ESTE DE ROJO VA EN EL BODY :?:

BUENO PARA K NOS SERVIRA ESTO :?:
Hey man , tal vez si pones un poco de atencion y lees detenidamente lo que escribi entenderias que se deve hacer con el codigo en rojo .. Pero si lees el tema del post sabrias para que te sirve este Script " SISTEMA DE VOTACIONES" , Te sugiero que antes de preguntar trates de comprender las explicaciones que uno les da .. pero en fin ...

El codigo en rojo es el Script que en el que declararemos nuestras encuestas , es decir ,, nuestras preguntas con sus respectivas respuestas ..

.. Lo primero que deves hacer es crear tus tablas para que el Script se ejecute correctamente.. para lo cual ocuparemos el siguiente codigo ..
CREATE TABLE `encuesta_blt` (
`id_encuesta` varchar(5) NOT NULL default '',
`id_opcion` varchar(5) NOT NULL default '',
`ip` varchar(15) NOT NULL default '' )
TYPE=MyISAM;

**Si no sabes como crear las tablas .. te sugiero que primero te leas algunos tutoriales ... y ya despues vienes a secciones como esta para poner en practica lo que has aprendido ..

Bueno .. Ya que tenemos las tablas, procedemos a crear un archivo PHP, al cual llamaremos "encuesta_sm.php" , dentro de ese archivo es donde pegaremos el codigo siguiente .. Haciendo los cambios nesesarios que ya arriva explique ...

<?
mysql_connect('LOCALHOST','USUARIO','PASSWORD')or die('ERROR EN LA CONEXION :'.mysql_error());
mysql_select_db('BASE_DE_DATOS')or die('ERROR AL ESCOJER LA BD :'.mysql_error());

function show_encuesta($id_ENCUESTA,$proteccion_IP){
//PREGUNTAS Y OPCIONES
$encuesta[1]=array('¿Que te parece este Script?',array('Exelente','Bueno','Regular','Malo','Pesimo'));
$encuesta[2]=array('¿Que te parece la web CCTW?',array('Exelente','Buena','Regular','Mala','Pesima'));
$encuesta[3]=array('¿Que te parece Santuario Maldito?',array('Exelente','Bueno','Regular','Malo','Pesimo'));
//END
if (!array_key_exists($id_ENCUESTA,$encuesta)) return ('El id de la encuesta no se encuentra disponible');
else
$pregunta_de_la_encuesta = array_shift($encuesta[$id_ENCUESTA]);
$opciones_de_la_encuesta = array_pop ($encuesta[$id_ENCUESTA]);
if(isset($_POST)){
$ssqls=mysql_query('SELECT * FROM encuesta_blt WHERE ip="'.$REMOTE_ADDR.'"')or die(mysql_error());
if($proteccion_IP && mysql_num_rows($ssqls)>=1){
$html_encuesta='<font color="#FF0000" face="tahoma" size="2">Usted ya voto , Gracias! </font>';
}
else {mysql_query('INSERT INTO encuesta_blt VALUES("'.$id_ENCUESTA.'","'.$_POST.'","'.$REMOTE_ADDR.'")')or die(mysql_error()); }
}

$ssql=mysql_query('SELECT * FROM encuesta_blt WHERE id_encuesta="'.$id_ENCUESTA.'"')or die(mysql_error());
$total_votos=mysql_num_rows($ssql);

// IMPRIMIR LOS RESULTADOS.
$html_encuesta.='<form action="'.$_SERVER[REQUEST_URI].'" method="POST">';
$html_encuesta.= ''.$pregunta_de_la_encuesta.'';
$html_encuesta.='
';
foreach($opciones_de_la_encuesta as $KEY => $OPCION){
$ssql=mysql_query('SELECT * FROM encuesta_blt WHERE id_encuesta="'.$id_ENCUESTA.'" and id_opcion="'.$KEY.'"')or die(mysql_error());
$votos_x_opcion=mysql_num_rows($ssql);
$estimar_porcentaje= @round($votos_x_opcion*100/$total_votos,1);
$html_encuesta.= '<input name="opcion" type="radio" value="'.$KEY.'"';
if($_POST==$KEY && isset($_POST)){$html_encuesta.='checked'; }

$html_encuesta.= '>'.$OPCION.' '.$estimar_porcentaje.'% Votos: '.$votos_x_opcion.'
';
}

$html_encuesta.='
<input type="submit" value="Votar">';
$html_encuesta.='</form>';
return $html_encuesta;
}
?>

.. Bueno el resto de los pasos los puedes encontrar en la parte superior del POST,, Recuerda que este codigo lo pegaras en un archivo nuevo .. no en el body... Ya que tengas en archivo "encuesta_sm.php" , preocederemos a llamarlo mediante un include .. para mostrarlo en cualquier parte de nuestra web ....

Espero ayas entendido....

SUERTE !!!
copie el código php y sustituí todos los datos por los mios. y al subirlos a mi web se ven bien las preguntas y respuestas pero, al oprimir el botón de VOTAR aparece el siguiente error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"' at line 1

¿alguien sabe cuál es el error?, por supuesto no imprime los resultados de las votaciones.