UN SYSTÈME DE SONDAGE POUR VOTRE SITE (A ADAPTER AU VOTRE)

Chiuchu Messages postés 8 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 19 février 2004 - 18 févr. 2004 à 21:16
flash974 Messages postés 2 Date d'inscription dimanche 4 septembre 2005 Statut Membre Dernière intervention 21 avril 2008 - 17 avril 2008 à 09:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/20558-un-systeme-de-sondage-pour-votre-site-a-adapter-au-votre

flash974 Messages postés 2 Date d'inscription dimanche 4 septembre 2005 Statut Membre Dernière intervention 21 avril 2008
17 avril 2008 à 09:49
Super code !
CodaVirgule Messages postés 28 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 18 juin 2006
28 mars 2006 à 12:24
Je vois ta source maintenant.

Tout roule, j'en cherchais une et c'est droit ce qu'il me faut.
Merci beaucoup.
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
27 mars 2004 à 23:14
ceil fonctionne très bien pourtant, mais c'est vrai qu'il peut y avoir une erreur de 1 ou 2 pourcents au total
wonesek Messages postés 115 Date d'inscription samedi 2 février 2002 Statut Membre Dernière intervention 13 mai 2006
25 févr. 2004 à 13:55
Anthomicro, c'est pas ceil() que tu dois utiliser mais round().
Quitte a commenter la source de quelqu'un d'autre en postant sa propre source, essaie de la donner complete. (jpense notament aux classes)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 févr. 2004 à 16:03
en plus simple (désolé) :

$mysql->requete("select SQL_SMALL_RESULT question,id from sondage ORDER BY RAND() LIMIT 1",5);
$r_s=$mysql->fetch_row(5);
$id_2=$r_s[1];
$mysql->requete("select SQL_SMALL_RESULT reponse_texte,id_reponse from sondage_reponses WHERE id_sondage="$id_2"",6);

//---------------------
//AFFICHAGE DU SONDAGE
//---------------------
$question=stripslashes($r_s[0]);
$contenu_sondage.='<hr size="1" color="#C0C0C0"><center>Sondage :
</center>'.$question.'<form name="form_sondage" action="'.$racine.'sondage.php?action=vote&id='.$id_2.'" method="post" target="_blank">';

$checked=0;
while($r=$mysql->fetch_row(6))
{
$reponse=stripslashes($r[0]);
$id_reponse=$r[1];

if($checked==0)
{
$contenu_sondage.=''.$reponse.'
';
$checked=1;
}
else
{
$contenu_sondage.=''.$reponse.'
';
}
}
$contenu_sondage.='<center></center></form>';

print($contenu_sondage);

//--------------------------------------------------
//DANS LE FICHIER SONDAGE.PHP
//--------------------------------------------------
<?php
if($_GET[action]==vote)
{
session_start();
if($_SESSION['login']==NULL)
{
print('<center>Désolé mais vous n\'êtes pas enregistré(e).

Vous devez vous enregistrer ou vous inscrire au site pour pouvoir voter');

}

$choix_reponse=$_POST[choix_reponse];
$id=$_GET["id"];
include("classes/classe_mysql.inc.php");
$mysql=new mysql();
$mysql->connect('');
//ON AJOUTE 1 AU NOMBRE DE VOTES POUR LA REPONSE CHOISIE
if($_SESSION['login']<>NULL)
{
//SI LE MEMBRE A DEJA VOTE ON NE COMPTE PAS SON VOTE
$mysql->requete("select SQL_SMALL_RESULT COUNT(*) from sondage_votes WHERE id_sondage="$id" and pseudo="$_SESSION[login]"",0);
$nbre=$mysql->fetch_row(0);
$nbre=$nbre[0];
if($nbre<>0)
{
print('
<center>Vous avez déjà voté.</center>');
}
else
{
$mysql->requete("INSERT INTO sondage_votes VALUES ("$id","$_SESSION[login]")",0);
$mysql->requete("UPDATE sondage_reponses SET nb_votes=nb_votes+1 WHERE id_sondage="$id" and id_reponse="$choix_reponse"",0);
}
}
print('

');
$mysql->requete("select SQL_SMALL_RESULT nb_votes from sondage_reponses WHERE id_sondage="$id"",1);
$mysql->requete("select SQL_SMALL_RESULT nb_votes,reponse_texte from sondage_reponses WHERE id_sondage="$id"",2);
$mysql->deconnect();

$total_votes=0;
while($r=$mysql->fetch_row(1))
{
$nb_votes=$r[0];
$total_votes=$total_votes+$nb_votes;
}
while($r=$mysql->fetch_row(2))
{
$nb_votes=$r[0];
$reponse=stripslashes($r[1]);
if($total_votes<>0)
{
$pourcentage=ceil(($nb_votes/$total_votes)*100);
}
else
{
$pourcentage=$nb_votes;
}
print(''.$reponse.' : ('.$pourcentage.' % )

');
}
print('Nombre de votes : '.$total_votes.'');
exit;
}
?>


Bon ce sont les sources du système de sondage de mon site. Je n'ai pas mis le schéma mysql c'est juste pour te montrer qu'on peut faire plus simple.

a +
Chiuchu Messages postés 8 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 19 février 2004
19 févr. 2004 à 09:51
Salut,
Oui, mais j'ai voulu faire simple, le système à choix multiple aurait été un petit peu compliqué pour quelqu'un qui s'initie au php ...
Si vous voulez du choix multiple, envoyez moi un mail ou un MP ...
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
19 févr. 2004 à 09:46
Je sais j'ai pas encore ajouter de source mais ton systeme de sondage ne permet pas le choix multiple, ce qui peut etre assez dommage. Je ne l'ai pas testé mais full confiance. Pour ce qui est du choix multiple, rajoute simplement un champ nbre_de_votant que tu incremente a chaque validation de ton sondage.
Voili voilou.
Si tu veux, dès que j'ai 5 min, je te communique mon ajout (a moins que ca te tente de le faire)
Chiuchu Messages postés 8 Date d'inscription lundi 16 février 2004 Statut Membre Dernière intervention 19 février 2004
18 févr. 2004 à 21:16
Comme toujours ... Une suggestion ? je suis ouvert à tout :)
Rejoignez-nous