Ce sondage affiche les résultats directement en dessous des possibilités de réponse. Pour ne pas "utiliser un canon pour tuer une mouche" je n'ai pas fait intervenir de base de données mais les résultats sont tout simplement stockés dans un fichier texte. Possibilité de personnaliser le sondage en modifiant les variables en début de fichier (question, réponses, nombre max de votes, ...).
Source / Exemple :
<?
// INFORMATIONS SUR LE SONDAGE
$titre = 'sondage'; // = nom du fichier dans lequel est stocké les votes
$question = 'Comment trouvez-vous ce site ?';
$reponse[1] = 'Bien';
$reponse[2] = 'Moyen';
$reponse[3] = 'Mauvais';
$reponse[4] = 'Pitoyable';
$nb_max_votes = 0; // 0 si illimité
// MODIFICATION DU SONDAGE
$choix = count($reponse);
if (isset($_GET['vote']))
{
$resultats = fopen("$titre.txt", "r+");
$vote = $_GET['vote'];
for ($numero = 1; $numero <= $choix; $numero ++)
{
$ligne[$numero] = (int) fgets($resultats);
if ($numero == $vote)
{
$ligne[$numero] ++;
}
if (isset($donnees_votes))
{
$donnees_votes = $donnees_votes . "\n" . $ligne[$numero];
$nb_votes += $ligne[$numero]; // comptage du nombre de votes
}
else
{
$donnees_votes = $ligne[$numero];
$nb_votes = (int) $ligne[$numero];
}
}
fseek ($resultats, 0);
if($nb_votes<=$nb_max_votes OR $nb_max_votes==0)
fputs ($resultats, $donnees_votes); // écriture des données
fclose($resultats);
}
// LECTURE DU SONDAGE
$resultats = fopen("$titre.txt", "r");
$numero = 1;
while ($numero <= $choix) // attribution d'un nombre pour chaque vote à l'array $resultat[]
{
$resultat[$numero] = fgets($resultats);
if ($resultat[$numero] == NULL) // on remplace les lignes vides du fich txt par 0
{
$resultat[$numero] = 0;
}
$numero ++;
}
$total_votes = 0; // calcul du total des votes
foreach($resultat as $nb_resultat) $total_votes += $nb_resultat;
if ($total_votes == 0) // éviter la division par 0
{
$total_votes = 1;
}
$numero = 1;
while ($numero <= $choix) // transformation du nombre de vote en pourcentages
{
$pourcentage[$numero] = $resultat[$numero] / $total_votes * 100;
$numero ++;
}
$long_max_bloc = 120; // longueur maximale du curseur pour un vote en pixels
// affichage des barres et du nombre de votes
$numero = 1;
echo ('<div class="titresondage" align="center">'. $question . '</div><br /><form action=""> ');
while ($numero <= $choix)
{
echo ('<div class="choix"><label><input type="radio" name="vote" value="' . $numero . '" />'. $reponse[$numero] .'</label>
<br /> <img src="sondage_barre.jpg" height="10"width="' . $pourcentage[$numero] / 100 * $long_max_bloc . '"
alt="'.round($pourcentage[$numero]).'%" /><br />
<span style="font-size:80%;"><strong>' . $resultat[$numero] . ' votes</strong></span></div>');
// echo ($pourcentage[$numero] . '%');
$numero ++;
}
echo ('<div align="center"><input type="submit" value="envoyer">');
echo ('</div></form>');
fclose($resultats);
///== Par Yvan0|_| ==///?>
Conclusion :
--> Penser à créer le fichier texte du même nom que le titre du sondage.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.