Recherche rapide
     
Espace Membres
il y'a actuellement 32370 membres
 
Pseudo  
Password  
inscriptions
 
Cours php/Tutoriels
  1/  Apprendre les bases de PHP
  1a/  Divers en PHP, les erreurs, les variables etc...
  2/  Les variables
  3/  Les variables d'environnements
  4/  Les conditions
  5/  Les boucles
  6/  Les cookies
  7/  Travailler sur les dates
  8/  Les tableaux array()
  9/  Travailler avec les fichiers
  10/  Traiter les chaines de caractères
  11/  Récuperer et verifier les données d'un formulaire
  12/  Envoyer des mails
  13/  Les pseudo-frames
  14/  Débuter avec mysql
  15/  Fonctions update et delete de mysql
  16/  Comprendre et utiliser la clause where
  17/  Liste de quelques fonctions mysql
  18/  Mysql par la pratique, construire un livre d'or
  19/  Construire un mini moteur ou annuaire
  20/  Afficher sur plusieurs pages
  21/  La construction de votre forum
  22/  Faire son script de sondage (vote)
  23/  Sessions , mise en pratique
  24/  Sessions , récapitulatif
  25/  Les expressions régulières
  26/  Coder son ANTI-FLOOD
  27/  Utiliser et créer ses fonctions
  28/  Upload et transfert de fichiers
 
 
 
Liens
  Les cours pour bien débuter PHP
Créer son propre système de vote (Sondage) n°22

Ce cours n'a pas encore été mis à jour

Dans ce cours, je tenterais de vous expliquer comment créer votre propre sondage sans chercher à installer d'autres sripts, car il est toujours preférable de créer le votre afin de mieux l'adapter à vos besoins et vos préférences.
Alors on prend son souffle et on y va ! :-)

Des choses à savoir :

Afin de bien réussir ce script vous aurez besoin de bien assimiler certaines choses simples que je pense tout le monde pourra facilement comprendre et qui se rapporte essentiellement à mysql:

  • Les variables d'environnement.
  • La requête Mysql INSERT , SELECT et WHERE
Si vous n'arrivez pas à comprendre ça je vous conseille de voir la documentation Mysql de Nexen.

Commencons par le tout début - PhpMyAdmin :

Avant toute autre chose, il nous faudra créer notre table dans laquelle seront stockés les votes, pour çelà nous utiliserons PhpMyadmin en y appliquant la requête suivante :
Créer la table ( sous PhpMyAdmin par exemple)
CREATE TABLE sondage (
   id int(11) NOT NULL auto_increment, // Champs indexé
   vote tinyint(4) NOT NULL, // Champs de stockage des votes des visiteurs
   ip char(50) NOT NULL, // Stockage de l'ip du voteur (système anti triche)
   UNIQUE KEY (id)
) Type=MyISAM;


Création de l'interface de vote :

Ce dont nous aurons besoin ici n'est que du code html que je n'expliquerais pas car là n'est pas le but de ce cours. Vous avez surement du voir des sondages sur le net, il nous faudra des radios (autant de radios que de reponse possible) et un bouton de validation comme ceçi :

Formulaire de vote ( HTML )

<form method='post' action='votez.php'>
<input type=radio name="vote" value="1"> // Première reponse possible
Trèès cool<br>
<input type=radio name="vote" value="2"> // deuxième reponse possible
Assez Cool<br>
<input type=radio name="vote" value="3"> // troisième reponse possible
Booof<br>
<input type=radio name="vote" value="4"> // quatrième reponse possible
Nuul à chier<br>
<br>
<center>
<input type=submit value="Valider" name="submit"> // boutton de validation
</center>
<br>
</form>

Notons que les valeurs des votes sont stockées dans les value des radios, ici pour ne pas trop nous compliquer la vie, nous les nommerons 1,2,3 et 4 et ce sont ces mêmes valeurs que nous inserrons dans la table et que nous pourrons recupérer pour afficher les résultats grâce à la clause WHERE.



Voyons ensemble ce que donne ce code en visuel :
Comment trouvez vous le site ?
Trèès cool
Assez Cool
Booof
Nuul

Ici nous proposons au visiteur de donner son avis sur notre site grâce à des radios où il choisit son vote. Le bouton valider mène vers le script d'ajout contenant les requête mysql nécessaire à l'insertion dans la table.

 


Requête d'insertion dans la table
Passons maintenant au code d'insertion dans la table, il se fera de la manière suivante :
Voici le code de notre fichier votez.php

<?php

// On inclut le fichier de configuration avant tout
require ("config.inc.php");

// On ouvre une connection à notre serveur
mysql_connect("$hote","$user","$pass");

// On selectionne notre base de données
mysql_select_db("$base");

// On definit la variable ip adresse
$ip $REMOTE_ADDR;

// On créé la requête d'insertion dans la table
$sql "INSERT INTO (vote,ip) VALUES (\"$vote\",\"$ip\")";

// On execute la requête SQL
mysql_query($sql);

// On redirige vers la page de sondage
// http_referer est l'adresse de la page qui nous menés à votez.php
header(location:"$HTTP_REFERER");

// On ferme la connection à mysql
mysql_close();

?>
 

Affichage des resultats
Dans cette partie, vous verrez comment afficher les resultats de manière basique car les ameliorations, c'est à vous de les faire, le but ici est de vous expliquer le fonctionnement pour le reste c'està vous d'imaginer. ! :p
Ici pour récuperer les resultats nous aurons recours à la requete SELECT, car nous selectionnerons tous les champs où vote = 1 ou 2 etc et nous procéderons au comptage des lignes grâce à mysql_numrows. Regarder le code pour comprendre :

Code du fihier result.php

<?php

// On inclut le fichier de configuration
include ("config.inc.php");

// On définit le nom de la table
$table "sondage";

// On se connect au serveur sql
mysql_connect("$hote","$user","$pass");

// On selectionne notre base de données
mysql_select_db("$base");

// On selectionnes les lignes où vote est 1 --> "très bien" dans notre exemple
$s1 "SELECT id,vote,nbr_vote FROM $table where vote='1'";

// On execute la requete de selection
$r1 mysql_query($s1);

// On compte le nombre de lignes où vote est egal à 1
$nvote1 mysql_numrows($r1);

// On fait la même opération pour les autres votes.
$s2 "SELECT id,vote,nbr_vote FROM $table where vote='2'";
$r2 mysql_query($s2);
$nvote2 mysql_numrows($r2);

$s3 "SELECT id,vote,nbr_vote FROM $table where vote='3'";
$r3 mysql_query($s3);
$nvote3 mysql_numrows($r3);

$s4 "SELECT id,vote,nbr_vote FROM $table where vote='4'";
$r4 mysql_query($s4);
$nvote4 mysql_numrows($r4);

/*
* Dans le reste du code, nous allons afficher les resultats sous
* forme de table, à vous d'aranger l'apparence que vous voulez
*/

// Ceci est la table où apparaissent le nombre de vote pour chaque reponse
echo "<table width=\"40%\" cellspacing=\"0\" cellpading=\"0\">";
echo 
"<tr><td>Trèès bien : </td><td> $nvote1</td></tr>";
echo 
"<tr><td>Assez bien : </td><td> $nvote2</td></tr>";
echo 
"<tr><td>Booof : </td><td> $nvote3</td></tr>";
echo 
"<tr><td>Nul à chier : </td><td> $nvote4</td></tr>";
echo 
"</table>";

// On selectionne toute la table
$sql "SELECT id FROM $table";

// On compte le nombre total de lignes
$total mysql_numrows(mysql_query($sql));

// Affichage du nombre total de votes
echo "<table width=\"40%\" cellspacing=\"0\" cellpading=\"0\">";
echo 
"<tr><td>Nbr total des votes : $total</td></tr></table>";

// Fermeture de la connection à mysql
mysql_close();
?>
 

Le fichier de configuration standard
Il n'y a rien à expliquer, ceci est le fichier de configuration qui contiendra nos variables de connection.

<?php

// Adresse de votre serveur sql (ex : sql.free.fr pour free)
$hote "localhost";

// Votre login chez votre hebergeur
$user "";

// Votre pass correspondant à ce login
$pass "";

// Nom de votre base, generalement la même que votre login chez les hebergeurs gratuits
$base "az-php";

?>
 

Fin de ce cours

Eh voilà ce cours touche à sa fin, j'espère que vous saurez après ça créer votre propre système de vote, car toutes les explications sont données et normalement il ne devrait pas y avoir de problèmes.
Bien sûr ce cours ne vous donnera pas un script parfait car il reste plusieurs choses à faire mais là encore c'est à vous d'imaginer les diverses possibilités à ajouter, tel que :
  • Affichage graphique des resultats
  • Zone d'administration des votes
  • Système Anti - triche (verification des ips)
 

 

Et ben voilà, vous savez maintenant comment créer votre propre système sondage, et attention, règle n° 1 du site : On ne copie pas le code, on le retappe sur son clavier pour mieux comprendre car le but est plus de comprendre que de copier des applications déjà faites.
Notre prochain cours portera sur les fonctions FTP qui sont très meconnues des debutants phpéistes malgré que ces derniers permettent une gestion complète de votre site, et nous verrons aussi comment nous pouvons uploader via notre site.
 

Bonne chance à tous.
'hbillo' hbillo@az-php.com


 

 
 
Rubrique installer
  1°/  Apache et PHP
  2°/  Mysql sur votre PC (version tar.gz)
  3°/  Mysql sur votre PC (version rpm)
 
Newsletter

 
Votez !!
Pas de votes ni suggestions actuellement
 
 
 
Débuter Linux
 1°/   Introduction
 2°/   Installation ( 1ere partie )
 3°/   Installation ( 2ème partie )
 4°/   Connexion / documentation / Synthaxe
 5°/   Les différentes commandes sous linux
 6°/   Installer / Désinstaller / Lister les applications
 7°/   Manipulation des chaines de caractères
 
    © Copyright 2005 - az-php.com - tous droits réservés , reproduction interdite . Hébergé par 1hebergeur.com [ mentions légales & copyright ]