Aller au contenu

Sujets conseillés

Posté

Bonjour à tous,

Donc voila, j'ai comme projet de creer un sondage sur mon site. Donc j'ai créé ma page html pour que le visiteur puisse cocher la case souhaitée et envoyer la requete mais là, j'ai un problème qui s'oppose surtout pour la page résultat...

Elle sera +/- comme ça:

53 Visiteurs ont votés pour le choix 1

24 Visiteurs ont votés pour le choix 2

38 Visiteurs ont votés pour le choix 3

17 Visiteurs ont votés pour le choix 4

Le problème, c'est ce que j'ai souligné en gras, comment puis-je faire pour compter le nombre de votes? J'insereune table ou a chaque fois qu'un visiteur vote, il cree une entrée puis compte le nombre d'entrée? Mouais... ça me parrait un peu brouillon.

Ou une boucle...

Je débute encore en php, je ne sais pas trop que faire ni quel est la meilleure solution, en esperant quelques conseils de votre part,

Merci d'avance,

Ludo29

Posté

Je te conseille de faire une table pour ton sondage de la façon suivante :

- 1 colonne pour l'id

- 1 colonne pour le choix (l'option du sondage - 1, 2, 3 ou 4)

- 1 colonne pour l'ip (si tu veux mettre un peu de sécurité et n'autoriser qu'un vote par IP)

Quand une personne vote tu l'enregistres dans ta table (id = autoincrement + choix).

Pour donner les résultats tu comptes combien de votes ont pour choix 1, 2, 3 et 4 :

$nb_vote_choix1 = mysql_num_rows(mysql_query("SELECT id FROM sondage WHERE option='1'"));
$nb_vote_choix2 = mysql_num_rows(mysql_query("SELECT id FROM sondage WHERE option='2'"));
$nb_vote_choix3 = mysql_num_rows(mysql_query("SELECT id FROM sondage WHERE option='3'"));
$nb_vote_choix4 = mysql_num_rows(mysql_query("SELECT id FROM sondage WHERE option='4'"));

Tu n'as plus qu'à afficher les différents résultats par la suite.

<?php echo $nb_vote_choix1; ?> Visiteurs ont votés pour le choix 1<br>
<?php echo $nb_vote_choix2; ?> Visiteurs ont votés pour le choix 2<br>
<?php echo $nb_vote_choix3; ?> Visiteurs ont votés pour le choix 3<br>
<?php echo $nb_vote_choix4; ?> Visiteurs ont votés pour le choix 4<br>

Posté

Et moi je déconseille vivement l'utilisation de mysql_num_rows(), sauf dans les (rares ?) cas où le développeur sait ce qu'il fait :D

Télécharger des milliers voir millions de lignes puis les stocker entièrement en mémoire, tout ça juste pour un comptage, c'est plutôt catastrophique comme approche :sick: . La fonction count() de MySQL fait très bien son boulot, donc autant l'utiliser.

D'autant plus qu'en l'occurance on pourrait regrouper en une seule requete :

select id_option, count( id_utilisateur ) as nb
from sondage
where id_sondage = ?
group by id_option

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...