UN SYSTÈME DE SONDAGE POUR VOTRE SITE (A ADAPTER AU VOTRE)
Chiuchu
Messages postés8Date d'inscriptionlundi 16 février 2004StatutMembreDernière intervention19 février 2004
-
18 févr. 2004 à 21:16
flash974
Messages postés2Date d'inscriptiondimanche 4 septembre 2005StatutMembreDernière intervention21 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.
flash974
Messages postés2Date d'inscriptiondimanche 4 septembre 2005StatutMembreDernière intervention21 avril 2008 17 avril 2008 à 09:49
Super code !
CodaVirgule
Messages postés28Date d'inscriptionlundi 27 mars 2006StatutMembreDernière intervention18 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és9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 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és115Date d'inscriptionsamedi 2 février 2002StatutMembreDernière intervention13 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és9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 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);
//--------------------------------------------------
//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();
');
}
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és8Date d'inscriptionlundi 16 février 2004StatutMembreDernière intervention19 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és388Date d'inscriptionlundi 7 juillet 2003StatutWebmasterDernière intervention10 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és8Date d'inscriptionlundi 16 février 2004StatutMembreDernière intervention19 février 2004 18 févr. 2004 à 21:16
Comme toujours ... Une suggestion ? je suis ouvert à tout :)
17 avril 2008 à 09:49
28 mars 2006 à 12:24
Tout roule, j'en cherchais une et c'est droit ce qu'il me faut.
Merci beaucoup.
27 mars 2004 à 23:14
25 févr. 2004 à 13:55
Quitte a commenter la source de quelqu'un d'autre en postant sa propre source, essaie de la donner complete. (jpense notament aux classes)
19 févr. 2004 à 16:03
$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 +
19 févr. 2004 à 09:51
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 ...
19 févr. 2004 à 09:46
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)
18 févr. 2004 à 21:16