Foros del Web » Programando para Internet » PHP »

una duda creando un sistema de votaciones

Estas en el tema de una duda creando un sistema de votaciones en el foro de PHP en Foros del Web. Hola, pues como dice el titulo del thread, he pillado un tuto para crear encuestas y pues segun todo lo ke decia he creado la ...
  #1 (permalink)  
Antiguo 20/03/2006, 15:06
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 1 mes
Puntos: 4
una duda creando un sistema de votaciones

Hola, pues como dice el titulo del thread, he pillado un tuto para crear encuestas y pues segun todo lo ke decia he creado la tabla en la BD le añadi un campo a la tabla de usuarios ya ke este scrip va de la mano con dicha tabla ahora bien el codigo del script ke me da es este ke yo debia de arreglar segun mis datos de BD, aki pongo el code

Código PHP:
<?php
$enkesta_destino 
""// destino del form al ser enviado, 
$size_fuente "1"// indica el tamaño de la fuente
$color_fuente "#000000"// indica el color de la fuente
$color_barras "#CC0000"// indicador de los porcentages elije el color que quieras
$size_barras "10"// indicador de la grosos de las barras q muestran los porcentajes

include('config.php');

    if(!isset(
$_SESSION[usuario]) ) { /* si es usuario anonimo, veras los resultados pero no podras votar */
    
    
$query "SELECT * FROM enkesta ORDER BY id DESC LIMIT 0, 1"$resp mysql_query($query); /* si os fijais con esta seleccion elegimos siempre la última enquesta segun la id :D */
    
while ($enkesta mysql_fetch_array($resp)) {
        
/********************************************************************
        suma de el total de votos realizados los tendremos en $votos_totales
        y calculo de cada porcentage dentro del while
        los tendremos en $porcentage_op1, $porcentage_op2 etc...
        /********************************************************************/
         
$votos_totales $enkesta[vot1] + $enkesta[vot2] + $enkesta[vot3] + $enkesta[vot4];
         
$mult_op1 $enkesta[vot1] * 100$porcentage_op1 =@ round($mult_op1 $votos_totales,0);
         
$mult_op2 $enkesta[vot2] * 100$porcentage_op2 =@ round($mult_op2 $votos_totales,0);
         
$mult_op3 $enkesta[vot3] * 100$porcentage_op3 =@ round($mult_op3 $votos_totales,0);
         
$mult_op4 $enkesta[vot4] * 100$porcentage_op4 =@ round($mult_op4 $votos_totales,0);
?>
    <table width='100%' border='0'>
    <tr><td align='center'><font size='<?=$size_fuente?> 'color='#000000'><b><?=$enkesta[titol]?></b></font></td></tr>
    <tr><td height='15'><font size='<?=$size_fuente?>' color='#000000'><b><?=$enkesta[op1]?></b></font><font size='<?=$size_fuente?>'> - <?=$enkesta[vot1]?> votos - <?=$porcentage_op1?>%</font></td><tr>
    <tr><td><table width='<?=$porcentage_op1?>%' height='<?=$size_barras?>' border='0' style='border: 1px #000000 solid'><tr><td style="background: <?=$color_barras?>; font-size: 2pt;">&nbsp;</td></tr></table></td></tr>
    <tr><td height='15'><font size='<?=$size_fuente?>' color='#000000'><b><?=$enkesta[op2]?></b></font><font size='<?=$size_fuente?>'> - <?=$enkesta[vot2]?> votos - <?=$porcentage_op2?>%</font></td><tr>
    <tr><td><table width='<?=$porcentage_op2?>%' height='<?=$size_barras?>' border='0' style='border: 1px #000000 solid'><tr><td style="background: <?=$color_barras?>; font-size: 2pt;">&nbsp;</td></tr></table></td></tr>
    <tr><td height='15'><font size='<?=$size_fuente?>' color='#000000'><b><?=$enkesta[op3]?></b></font><font size='<?=$size_fuente?>'> - <?=$enkesta[vot3]?> votos - <?=$porcentage_op3?>%</font></td><tr>
    <tr><td><table width='<?=$porcentage_op3?>%' height='<?=$size_barras?>' border='0' style='border: 1px #000000 solid'><tr><td style="background: <?=$color_barras?>; font-size: 2pt;">&nbsp;</td></tr></table></td></tr>
    <tr><td height='15'><font size='<?=$size_fuente?>' color='#000000'><b><?=$enkesta[op4]?></b></font><font size='<?=$size_fuente?>'> - <?=$enkesta[vot4]?> votos - <?=$porcentage_op4?>%</font></td><tr>
    <tr><td><table width='<?=$porcentage_op4?>%' height='<?=$size_barras?>' border='0' style='border: 1px #000000 solid'><tr><td style="background: <?=$color_barras?>; font-size: 2pt;">&nbsp;</td></tr></table></td></tr>
    <tr><td align='center'><font size='<?=$size_fuente?>' color='#000000'>Votos totales: <?=$votos_totales?></font></td><tr>
    </table>
<? 
        
}/* fin del while que muestra los datos */
    
/* fin del if de si el usuario es anonimo*/

    
else{ /* si hay sesion abierta*/
    /* Miramos si el usuario ha sido o no enquestado consultando a la tabla users */
        
$querys "SELECT * FROM users WHERE nick='".$_SESSION[usuario]."'";
        
$respira mysql_query($querys);
        while (
$jj mysql_fetch_array($respira)) { $usuari_enkestat $jj[enkesta]; }
        
        if (
$usuari_enkestat == "si") { /* si ya lo ha sido haremos lo mismo que si fuera animo, no puede votar pues que solo vea los resultados */
        
$query "SELECT * FROM enkesta ORDER BY id DESC LIMIT 0, 1";
        
$resp mysql_query($query);
            while (
$enkesta mysql_fetch_array($resp)) {
             
$votos_totales $enkesta[vot1] + $enkesta[vot2] + $enkesta[vot3] + $enkesta[vot4];
             
$mult_op1 $enkesta[vot1] * 100$porcentage_op1 =@ round($mult_op1 $votos_totales,0);
             
$mult_op2 $enkesta[vot2] * 100$porcentage_op2 =@ round($mult_op2 $votos_totales,0);
             
$mult_op3 $enkesta[vot3] * 100$porcentage_op3 =@ round($mult_op3 $votos_totales,0);
             
$mult_op4 $enkesta[vot4] * 100$porcentage_op4 =@ round($mult_op4 $votos_totales,0);
             
?>
                <table width='100%' border='0'>
                <tr><td align='center'><font size='<?=$size_fuente?>'color='#000000'><b><?=$enkesta[titol]?></b></font></td></tr>
                <tr><td height='15'><font size='<?=$size_fuente?>'color='#000000'><b><?=$enkesta[op1]?></b></font><font size='<?=$size_fuente?>'> - <?=$enkesta[vot1]?> votos - <?=$porcentage_op1?>%</font></td><tr>
                <tr><td><table width='<?=$porcentage_op1?>%' height='<?=$size_barras?>' border='0' style='border: 1px #000000 solid'><tr><td style="background: <?=$color_barras?>; font-size: 2pt;">&nbsp;</td></tr></table></td></tr>
                <tr><td height='15'><font size='<?=$size_fuente?>'color='#000000'><b><?=$enkesta[op2]?></b></font><font size='<?=$size_fuente?>'> - <?=$enkesta[vot2]?> votos - <?=$porcentage_op2?>%</font></td><tr>
                <tr><td><table width='<?=$porcentage_op2?>%' height='<?=$size_barras?>' border='0' style='border: 1px #000000 solid'><tr><td style="background: <?=$color_barras?>; font-size: 2pt;">&nbsp;</td></tr></table></td></tr>
                <tr><td height='15'><font size='<?=$size_fuente?>'color='#000000'><b><?=$enkesta[op3]?></b></font><font size='<?=$size_fuente?>'> - <?=$enkesta[vot3]?> votos - <?=$porcentage_op3?>%</font></td><tr>
                <tr><td><table width='<?=$porcentage_op3?>%' height='<?=$size_barras?>' border='0' style='border: 1px #000000 solid'><tr><td style="background: <?=$color_barras?>; font-size: 2pt;">&nbsp;</td></tr></table></td></tr>
                <tr><td height='15'><font size='<?=$size_fuente?>'color='#000000'><b><?=$enkesta[op4]?></b></font><font size='<?=$size_fuente?>'> - <?=$enkesta[vot4]?> votos - <?=$porcentage_op4?>%</font></td><tr>
                <tr><td><table width='<?=$porcentage_op4?>%' height='<?=$size_barras?>' border='0' style='border: 1px #000000 solid'><tr><td style="background: <?=$color_barras?>; font-size: 2pt;">&nbsp;</td></tr></table></td></tr>
                <tr><td align='center'><font size='<?=$size_fuente?>'color='#000000'>Votos totales: <?=$votos_totales?></font></td><tr>
                </table>
        <?
            
/* fin del while que muestra los datos */
        
}  /* fin if si el usuario ya ha sido enquestado */
        
if ($usuari_enkestat == "no") { /* Ahora si el usuario no ha sido enquestado, que salga el formulario de votacion */

        
if ($vota) {                                                  /* indicamos si se ha enviado el formulario */
        /* Actualizamos la tabla users e indicamos que 'si' ha votado */
        
$actua "UPDATE users SET enkesta='si' WHERE nick='".$_SESSION[usuario]."'";
        
mysql_query($actua);
        
$query "UPDATE enkesta SET $enke=$enke+1 WHERE id='".$enkesta_id."'";
        
mysql_query($query);
        echo 
"Gracias por votar !!!"/* Un mensaje que indica que se ha votado */
        
/* con este break ahora pasaremos a mostrar el formulario para votar */
        
$query "SELECT * FROM enkesta ORDER BY id DESC LIMIT 0, 1";
        
$resp mysql_query($query);
        while (
$enkesta mysql_fetch_array($resp)) {
        
?>
        <form method="post" name="enkesta_<?=$enkesta[id]?>" action="<?=$enkesta_destino?>">
            <input type="hidden" name="enkesta_id" value="<?=$enkesta[id]?>" />
            <p style="text-align: left; font-weight: bold; color: #000000; font-size: 9pt;"><?=$enkesta[titol]?></p>
            <input type="radio" name="enke" value="vot1" /> <?=$enkesta[op1]?><br />
            <input type="radio" name="enke" value="vot2" /> <?=$enkesta[op2]?><br />
            <input type="radio" name="enke" value="vot3" /> <?=$enkesta[op3]?><br />
            <input type="radio" name="enke" value="vot4" /> <?=$enkesta[op4]?><br />
            <p style="text-align: left;"><input type="submit" value="Enviar voto" name="vota" /></p>
        </form>
<?
            
/* fin if si el usuario NO ha sido enquestado */
        
/* si NO es usuario anonimo */
    
/* y Fin lee el final del leeme.txt para encontrarte con algunas explicaciones de cosas que puedes tener dudas */
?>
pues bien he creado una encuesta en el PHPMyAdmin, probe el script, si el usuario esta offline solo le deja ver los resultados de la votacion, y si este se loguea le muestra el formulario para votar y una vez enviado el voto deberia nuevamente mostrarle los resultados con su voto ya añadido, pero ahi esta el detalle ke una vez ke el usuario envio el voto, este ya se añadio a la BD, le manda el mensaje "Gracias por votar" pero aun le sigue mostrando el form para votar, aunke ahora ya no le cuenta el voto si es ke envia alguno, he puesto el script de cabeza para ver como arreglarlo y pues no he podido, si alguno de uds. ha hechos scripts similares me podria decir como puedo arreglar este lio ?, gracias de antemano.

saludos
  #2 (permalink)  
Antiguo 23/03/2006, 01:46
Avatar de deccweb  
Fecha de Ingreso: febrero-2003
Ubicación: Mataro
Mensajes: 365
Antigüedad: 21 años, 1 mes
Puntos: 0
Pues yo antes de mostrar el formulario haria un select de si el usuario a votado y si ha votado pues q muestre los resultados y si no ha votado q muestre el formulario.

Pero con este sistema solo puedes hacer una encuesta, no? me refiero a q no puedes hacer más encuestas.
__________________
Calle17.net

edgargranados.es
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 19:20.