Votre question

[Help][PHP] Création d'un sondage ^^

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
6 Juin 2006 17:45:20

Bonjour j'aimerais de l'aide pour du php...

  1. <?
  2. // Récupération des variables
  3.  
  4. if ($_POST['choix']) {
  5. $a = $_POST['choix'] ;
  6.  
  7. // Base de données
  8. include_once('connect.php');
  9.  
  10. $resultat = mysql_query("SELECT * FROM sondage ORDER BY id DESC",$db);
  11.  
  12. for ($i=0;$i<3;$i++){
  13. $com = mysql_fetch_array($resultat);
  14. if ($com['id'] == $a) {
  15. $b = mysql_query("SELECT nb FROM sondage ORDER BY id DESC WHERE id=".$a."",$db);
  16. echo $b ;
  17. }
  18. }
  19. }
  20. ?>


Y'a surement une erreur la dedans mais j'arrive pas à récupérer le nombre de vote déja effectué ... Biensur c'était juste pour un test mais .. Rien ne marche, c'est pour cela que j'ai fait appel à vos connaissance ^^

Merci d'avance :-)

Autres pages sur : help php creation sondage

a c 145 L Programmation
6 Juin 2006 17:59:16

déjà, tu as un "]" qui traine à la place d'un "}"

Ensuite, tes requètes ne veulent rien dire, du moins la première.

Si tu cherches le nombre d'enregistrements dans la table "sondage" dont l'id est égal à choix, simplifie ton script en:
  1. <?
  2. if (isset($_POST["choix"]) && ($_POST["choix"]!="")) {
  3. $choix = $_POST["choix"];
  4. include_once('connect.php');
  5. $sql = "SELECT COUNT(*) AS nb FROM sondage WHERE id=$choix";
  6. $req = mysql_query($sql, $db);
  7. list($nb) = mysql_fetch_row($req);
  8. echo $nb;
  9. } else {
  10. die("Pas de sondage selectionné");
  11. }
  12. ?>


a c 145 L Programmation
6 Juin 2006 18:03:47

Petit PS: quand je dis que ta requète ne veut rien dire, je veux dire qu'elle est totalement inutile.
Syntaxiquement, elle est juste mais au niveau logique:
tu vas chercher tous les enregistrements dans ta table, tu boucles sur les 3 premiers pour voir si tu matches avec ton choix... pour ensuite faire une requète seulement limité par ton choix.
Autant passer directement à la deuxième requête :) 
Contenus similaires
6 Juin 2006 18:07:04

Voila j'arrive maintenant à avoir le nombre de vote ^^
Par contre i lne fallais pas de COUNT(*) AS car ma base de données n'est pas faite comme ça, mais j'ai corrigé et j'obtient maintenant le résultat !

Merci beaucoup pour ton aide ^^
a c 145 L Programmation
6 Juin 2006 19:52:02

si je puis me permettre, et c'est un avis perso qui n'engage que moi, ta base est mal foutue: je présume que tu enregistres (ou incrémente) le nombre de réponses... pourquoi ne pas enregistrer toutes les réponses données par tout le monde et faire un count()? cela rendra ton système plus évolutif.

Pour ma part, si on me parle de sondage, je vois tout de suite 3 tables:
- sondage_questions qui contient:
-- sondage_id
-- question
-- date_debut
-- date fin

- sondage_reponses:
-- question_id
-- sondage_id
-- type_reponse (enum, yes/no, libre, ...)
-- reponse_libelle

- sondage_votes:
-- vote_id
-- user_id
sondage_id
-- reponse (une string formatée à mon gré)

Le système peut sembler lourd mais permet beaucoup de sondages, de tous types :) 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS