Problèmes dans la réalisation d'un petit sondage

Problèmes dans la réalisation d'un petit sondage - PHP - Programmation

Marsh Posté le 15-02-2008 à 21:48:31    

Hey!
 Je me suis lancé il y' a quelques temps dans la réalisation d'un petit site web vraiment très basique. Pour l'instant j'ai réussi à n'utiliser que du html mais je dois maintenant réaliser un petit sondage vraiment simple aussi, mais je ne connais strictement rien en php. j'ai donc essayé de faire un truc mais cela ne fonctionne pas vraiment. Je vous copie le code ci dessous. Si vous pouviez y jeter un coup d'oeil. :)  
 
 
Fichier configuration:

Code :
  1. <?php
  2. $hote = "localhost";
  3. $login = "root";
  4. $mot_passe = "";
  5. $nom_base = "assoc";
  6. $table = "sondage";
  7. $periode_sondage = "";
  8. $titre_sondage = "";
  9. $question1 = "........parmis cette liste:";
  10. $rep[0] = "essai..................";
  11. $rep[1] = "essai2..................";
  12. $question2 = "Comment avez vous connu .....fr?";
  13. $choix1 = "Internet";
  14. $choix2 = "Magazine";
  15. $choix3 = "Tv";
  16. $choix4 = "Connaissances";
  17. $choix5 = "Autre";
  18. ?>


 
 
Fichier voter:

Code :
  1. <?php
  2. require ("configuration.php" );
  3. mysql_connect($hote,$login,$mot_passe);
  4. mysql_select_db($nom_base);
  5. $vote = $_POST['list'];
  6. $ip = $_SERVER['REMOTE_ADDR'];
  7. $query = "SELECT * FROM ".$table." WHERE ip='$ip'";
  8. $result = mysql_query($query);
  9. if($result)
  10. {
  11. echo "Vous avez déjà voté!";
  12. exit;
  13. }
  14. $sql = "INSERT INTO ".$table." (vote,ip) VALUES ('$vote','$ip')";
  15. mysql_query($sql) or die('ERREUR SQL !<br>'.$sql.'<br>'.mysql_error());
  16. mysql_close();
  17. echo 'Merci d\'avoir voté!<br><a href="resultats.php">Voir les résultats</a>';
  18. ?>


 
 
Fichier résultats:

Code :
  1. <?php
  2. require ("configuration.php" );
  3. mysql_connect($hote,$login,$mot_passe);
  4. mysql_select_db($nom_base);
  5. $query = "SELECT count(*) as nbVote FROM .$table.";
  6. $row = mysql_query($query);
  7. while($data = mysql_fetch_array($row));
  8. $total = $data["nbVote"];
  9. echo "<table width=\"200\" cellspacing=\"0\" cellpading=\"0\">\n";
  10. for($i=0;i<$sizeof$rep;i++)
  11. {
  12. $query = "SELECT count(*) nbVote FROM".$table."WHERE vote='$ip'";
  13. $row = mysql_query($query);
  14. while($data = mysql_fetch_array($row));
  15. $pourcentage = $data["nbVote"] * 100/$total;
  16. echo "\t<tr><td>".$rep[$i].":</td><td>".round($poucentage)."%</td></tr>\n";
  17. }
  18. echo "</table>\n";
  19. echo "<table width=\"100%\" cellspacing=\"0\" cellpading=\"0\">\n";
  20. echo "\t<tr><td>Nombre total de votes: $total</td></tr>\n</table>";
  21. mysql_close();
  22. ?>


 
L'intégration du sondage sur la page html ne pose pas de problèmes. C'est plutôt dans le traitement des informations donnée par l'internaute que tout ne fonctionne pas.  
ex: Parse error: parse error, expecting `';'' in c:\program files\easyphp1-8\www\french+php+sondage\resultats.php on line 14(ligne en gras)
 
Sinon est-il possible de consulter une base de donnée par interface logiciel (par exemple avec phpmyadmin, comment?)
 
Merci :hello:

Reply

Marsh Posté le 15-02-2008 à 21:48:31   

Reply

Marsh Posté le 16-02-2008 à 00:00:50    

pour ton erreur c'est la syntaxe du for qui n'est pas bonne :)
ton code = faux

Code :
  1. for($i=0;i<$sizeof$rep;i++)


correction :

Code :
  1. for($i=0;i<sizeof($rep);i++)
 

sinon ce qu'il faut c'est :
boucler sur les réponses (ce que tu fais avec le for)
pour chaque rep : compter les réponses, et là ta requete n'est pas bonne parce que IP n'a rien a faire ici (vue que tu filtre dejà au moment du vote) le where del a requete doit contenir plutot la rep.

 

Edit : quand tu fais une requete sql, le while c'est quand t'as plusieurs lignes de resultats, dans le cas d'un count c'est inutile

 


Message édité par naeh le 16-02-2008 à 00:03:20
Reply

Marsh Posté le 16-02-2008 à 18:14:00    

:ange:  
 
En fait pour le faire j'ai essayé d'adapter un sondage php que j'avais trouvé en tutorial. Mais je me suis peut être compliqué.
 
Voici ce que je voudrais en faite:
 
un sondage avec:
 
-un choix à faire parmi une liste déroulante (obligatoire)
-plusieurs cases à cocher du style "où avez vous connu..." (faculatif)
-une case "en votant vous êtes d'accord avec le réglement...."(obligatoire)
-un lien "résultats" dans le formulaire.
-une impossibilité de voter plusieurs fois.
-possiblité de remmettre le sondage à 0 tous les mois
-une page "résultat" avec le nombre de votant, et le nombre de vote pour chaque valeur présente dans la liste déroulante
 

Reply

Marsh Posté le 17-02-2008 à 15:58:35    

:ange:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed