Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme dans code sondage

Codecréé de toute pieces mais :( ...

Sujet résolu
    6 mars 2007 à 22:17:22

    Bonsoir tout le monde,

    Comme indiqué dans le titre, j'ai un soucis avec mon code de sondage :-°
    C'est pourquoi je m'en remet a vous.
    Voila mon code:

    <?php
                            mysql_connect("localhost", "root", "");
                            mysql_select_db("sondage");
                           
                           
                            $donnees = mysql_fetch_array(mysql_query('SELECT COUNT(*) AS nb_votes FROM sondage'));
                            $total_votes = $donnees['nb_votes'];
                                                   
                            //A
                            $donnees = mysql_fetch_array(mysql_query('SELECT COUNT(*) AS nb_de_a FROM sondage WHERE a=1'));
                            $total_de_a = $donnees['nb_de_a'];
                            $pourcentage_de_a = number_format((($total_de_a * 100) /$total_votes), 1, ',', ' ');
                            //B
                            $donnees = mysql_fetch_array(mysql_query('SELECT COUNT(*) AS nb_de_b FROM sondage WHERE b=1'));
                            $total_de_b = $donnees['nb_de_b'];
                            $pourcentage_de_b = number_format((($total_de_b * 100) /$total_votes), 1, ',', ' ');
                            //C
                            $donnees = mysql_fetch_array(mysql_query('SELECT COUNT(*) AS nb_de_c FROM sondage WHERE c=1'));
                            $total_de_c = $donnees['nb_de_c'];
                            $pourcentage_de_c = number_format((($total_de_c * 100) /$total_votes), 1, ',', ' ');
                            //D
                            $donnees = mysql_fetch_array(mysql_query('SELECT COUNT(*) AS nb_de_d FROM sondage WHERE d=1'));
                            $total_de_d = $donnees['nb_de_d'];
                            $pourcentage_de_d = number_format((($total_de_d * 100) /$total_votes), 1, ',', ' ');           
                           
                           
                            $retour = mysql_query('SELECT ip FROM sondage');
                            while ($donnees = mysql_fetch_array($retour))
                    {
                    $ip_deja_utilisee = $donnees['ip'];
                                    }
                            if ($_SERVER['REMOTE_ADDR'] != $ip_deja_utilisee)
                            echo '
                            <form action="index.php" method="post">
                            <p>
                            <label><input type="radio" name="sondage" value="a" />a</label> ('
    . $pourcentage_de_a  . ' %)<br/>
                            <label><input type="radio" name="sondage" value="b" />b</label> ('
    . $pourcentage_de_b  . ' %)<br/>
                            <label><input type="radio" name="sondage" value="c" />c</label> ('
    . $pourcentage_de_c  . ' %)<br/>
                            <label><input type="radio" name="sondage" value="d" />d</label> ('
    . $pourcentage_de_d  . ' %)<br/>
                            '
    . $total_votes . ' Votes<br/>
                            </form>
                            <input type="submit" value="Envoyer vote" /></p>'
    ;
                           
                            // reponse a
                            else if (($_POST['sondage'] = a) AND $_SERVER['REMOTE_ADDR'] != $ip_deja_utilisee)
                            {
                            $ip = $_SERVER['REMOTE_ADDR'];
                            $a = 1;
                            $b = 0;
                            $c = 0;
                            $d = 0;   
                            mysql_query("INSERT INTO sondage VALUES('', '" . $ip . "', '" . $a . "', '" . $b . "', '" . $c . "', '" . $d . "')");
                            echo
                            '<ul><li>a (' . $pourcentage_de_a  . ' %)</li>
                            <li>b ('
    . $pourcentage_de_b  . ' %)</li>
                            <li>c ('
    . $pourcentage_de_c  . ' %)</li>
                            <li>d ('
    . $pourcentage_de_d  . ' %)</li>
                            </ul>
                            <p>'
    . $total_votes . ' Votes<br/>
                            Vote validé</p>'
    ;
                            }
                           
                            //reponse b
                            else if (($_POST['sondage'] = b) AND $_SERVER['REMOTE_ADDR'] != $ip_deja_utilisee)
                            {
                            $ip = $_SERVER['REMOTE_ADDR'];
                            $a = 0;
                            $b = 1;
                            $c = 0;
                            $d = 0;   
                            mysql_query("INSERT INTO sondage VALUES('', '" . $ip . "', '" . $a . "', '" . $b . "', '" . $c . "', '" . $d . "')");
                                    echo
                            '<ul><li>a (' . $pourcentage_de_a  . ' %)</li>
                            <li>b ('
    . $pourcentage_de_b  . ' %)</li>
                            <li>c ('
    . $pourcentage_de_c  . ' %)</li>
                            <li>d ('
    . $pourcentage_de_d  . ' %)</li>
                            </ul>
                            <p>'
    . $total_votes . ' Votes<br/>
                            Vote validé</p>'
    ;
                            }
                           
                            //reponse c
                            else if (($_POST['sondage'] = c) AND $_SERVER['REMOTE_ADDR'] != $ip_deja_utilisee)
                            {
                            $ip = $_SERVER['REMOTE_ADDR'];
                            $a = 0;
                            $b = 0;
                            $c = 1;
                            $d = 0;   
                            mysql_query("INSERT INTO sondage VALUES('', '" . $ip . "', '" . $a . "', '" . $b . "', '" . $c . "', '" . $d . "')");
                            echo
                            '<ul><li>a (' . $pourcentage_de_a  . ' %)</li>
                            <li>b ('
    . $pourcentage_de_b  . ' %)</li>
                            <li>c ('
    . $pourcentage_de_c  . ' %)</li>
                            <li>d ('
    . $pourcentage_de_d  . ' %)</li>
                            </ul>
                            <p>'
    . $total_votes . ' Votes<br/>
                            Vote validé</p>'
    ;
                            }
                           
                            //reponse d
                            else if (($_POST['sondage'] = d) AND $_SERVER['REMOTE_ADDR'] != $ip_deja_utilisee)
                            {
                            $ip = $_SERVER['REMOTE_ADDR'];
                            $a = 0;
                            $b = 0;
                            $c = 0;
                            $d = 1;   
                            mysql_query("INSERT INTO sondage VALUES('', '" . $ip . "', '" . $a . "', '" . $b . "', '" . $c . "', '" . $d . "')");
                            echo
                            '<ul><li>a (' . $pourcentage_de_a  . ' %)</li>
                            <li>b ('
    . $pourcentage_de_b  . ' %)</li>
                            <li>c ('
    . $pourcentage_de_c  . ' %)</li>
                            <li>d ('
    . $pourcentage_de_d  . ' %)</li>
                            </ul>
                            <p>'
    . $total_votes . ' Votes<br/>
                            Vote validé</p>'
    ;
                            }
                            else if ($_SERVER['REMOTE_ADDR'] = $donnees['ip'])
                            {
                            echo
                            '<ul><li>a (' . $pourcentage_de_a  . ' %)</li>
                            <li>b ('
    . $pourcentage_de_b  . ' %)</li>
                            <li>c ('
    . $pourcentage_de_c  . ' %)</li>
                            <li>d ('
    . $pourcentage_de_d  . ' %)</li>
                            </ul>
                            <p>'
    . $total_votes . ' Votes</p>';
                            }
                            else
                            {
                            echo
                            '<ul><li>a (' . $pourcentage_de_a  . ' %)</li>
                            <li>b ('
    . $pourcentage_de_b  . ' %)</li>
                            <li>c ('
    . $pourcentage_de_c  . ' %)</li>
                            <li>d ('
    . $pourcentage_de_d  . ' %)</li>
                            </ul>
                            <p>'
    . $total_votes . ' Votes<br/>
                            Une erreure c\'
    est commise</p>';
                            }
                           
                            mysql_close();
                            ?>
     


    Le probleme est que lorsque je coche et valide une case, les votes ne changent pas :'(
    PS : pour les meilleurs, lorsque $total_votes = 0 on ne peut pas diviser par zero donc je compte mettre un vote mais si quelqu'un a une solution ? :-°

    Merci de toute l'aide que vous pourez m'apporter.
    • Partager sur Facebook
    • Partager sur Twitter
      7 mars 2007 à 3:22:13

      Erreur plutôt simple...

      else if (($_POST['sondage'] = a) AND $_SERVER['REMOTE_ADDR'] != $ip_deja_utilisee)

      Ton a est considéré comme une constante. Entoure-le avec des guillemets 'a' même chose avec le b, c et d.

      Ensuite, si je peux me permettre une remarque, ton nombre de requête est beaucoup trop grand pour la tâche que que veux faire. Avec les 6 requêtes de sélection, on pourrait en faire une seule. Même chose pour les 4 requêtes d'insertion... une seule aurait pu suffire. Je te conseille surtout de revoir le chapitre sur les boucles et sur le SQL dans le cour de M@teo.
      • Partager sur Facebook
      • Partager sur Twitter
        7 mars 2007 à 14:38:12

        Citation : Aroz


        Ton a est considéré comme une constante. Entoure-le avec des guillemets 'a' même chose avec le b, c et d.


        OK mais tu as mis des apostrophes et non des guillemets car j'avais mis dans un premier temps des guillemets que j'ai enlevé ar la suite.

        Et en effet je me souviens du tuto dont tu parles avec les boucles for ==> Je m'y remet ;)

        Mais ca ne marche toujours pas !

        • Partager sur Facebook
        • Partager sur Twitter
          8 mars 2007 à 21:05:11

          J'ai trouvé une autre solution qui marche bien merci quand meme !!
          • Partager sur Facebook
          • Partager sur Twitter

          Probleme dans code sondage

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown