Dreamweaver gratuit

Extensions et les tutorials gratuits disponibles sur internet pour Dreamweaver. PHP et ASP. Classement thématique. Blog référencé par Adobe "Communauté Dreamweaver".

31 mars 2008

Créer un sondage en PHP avec Dreamweaver – 1re partie

Dans ce tutoriel en 5 parties, nous allons créer un petit sondage avec bouton radio (choix multiple, réponse unique) qui présentera à l’utilisateur les résultats du sondage une fois qu’il aura voté. Merci à Floppy dont je me suis inspirée...

La question de notre sondage portera sur l’éditeur de code utilisé par le sondé :)

On suppose que votre base de données (dans ce tuto appelée ma_base) existe déjà et que ce fonctionnel s’insère dans un site existant possédant une connexion nommée ma_Connexion.

Tout d’abord allez dans PHPMyAdmin afin de créer la table contenant le sondage :

#
# Structure de la table 'sondage'
#
CREATE TABLE tb_sondage (
    id_reponse tinyint(4) NOT NULL default '0',
    compteur bigint(20) NOT NULL default '0',
    libelle varchar(255) NOT NULL default '',
    PRIMARY KEY (id_reponse)
) TYPE=MyISAM;

#
# Contenu de la table 'sondage'
#
INSERT INTO tb_sondage VALUES (1, 0, 'Dreamweaver');
INSERT INTO tb_sondage VALUES (2, 0, 'Ultra Edit');
INSERT INTO tb_sondage VALUES (3, 0, 'Notepad++');
INSERT INTO tb_sondage VALUES (4, 0, 'Autres');

Nous allons maintenant réaliser la page qui contient le sondage. Faites Fichier >> Nouveau >> Page vierge >> PHP >> Mise en forme Aucune.

Vérifiez en mode code, que la 1re ligne de votre document est bien :

<?php require_once('Connections/ma_Connexion.php'); ?>

Nous allons tout d’abord créer le squelette du formulaire contenant le sondage. Pour cela, nous respectons les standards W3C :

<form name="vote" id="vote" >
<fieldset>
    <legend>Sondage</legend>
    <p>Quel éditeur de code utilisez-vous ?</p>
    <label for=""></label>
    <input name="reponse" id="" type="radio" value="" />
    <br />
</fieldset>
  <p>
  <input id="button1" type="submit" value="Voter" />
  </p>
</form>

Voici pour info la CSS que j’utilise dans ce tutorial :

<style media="screen" type="text/css">
form { font-size:0.8em; background:#e0e0e0; width:250px; padding:10px; margin:0 auto; border:1px solid #e1e1e1; font-family: Arial, Helvetica, sans-serif; }
form fieldset {width:230px; display:block; padding:5px; line-height:1.5em; border:1px solid #fff; margin:15px 0 0 5px;}
form legend { border:1px solid #666; color:#f00; font-size:1em; margin-bottom:0; padding:3px; width:60px; background:none; font-weight:bold;}
form label {clear:left; display:block; float:left; width:120px; text-align:right; padding-right:10px; color:#000; margin-bottom:0.5em; font-size:1em; line-height:1.5em; }
form input {padding:0; margin-bottom:0.8em;}
form #button1 { background:#ff6600; border:1px solid #333; color:#fff; padding-right:0.5em; cursor:pointer; width:100px; margin-left:75px; font-weight:bold;}
</style>

Vous constatez ici qu’il n’y a qu’un seul bouton radio sans libellé ni valeur. Nous allons pour cela utiliser un jeu d’enregistrement et un comportement serveur.

Pour le jeu d’enregistrement, nous allons paramétrer la fenêtre comme suit :

sondage1

Une fois validé cette fenêtre, mettez-vous en mode code et ouvrez le panneau de liaison. Faites cliquer-glisser les items « id_reponse » et « libelle » comme indiqué dans la portion de code ci-dessous :

      <label for="<?php echo $row_RS_reponse['libelle']; ?>"><?php echo $row_RS_reponse['libelle']; ?></label>
      <input name="reponse" id="<?php echo $row_RS_reponse['libelle']; ?>" type="radio" value="<?php echo $row_RS_reponse['reponse']; ?>" />
      <br />

Maintenant sélectionnez le code ci-dessus et appliquez le comportement serveur « Région répétée » que vous paramétrez bien évidemment à « tous les enregistrements ».

Si vous affichez la page dans votre navigateur, vous devez obtenir ceci :

sondage2

Pour mettre à jour le compteur dans la table, il faut maintenant insérer la réponse faite par l’utilisateur dans le compteur de la table tb_sondage.  Pour cela, nous allons utiliser le comportement serveur « insérer un enregistrement » que nous allons remanier. Voici le paramétrage de cette fenêtre :

sondage3

Mettez la fenêtre principale en mode code si ce n’est déjà fait et modifier les lignes suivantes :

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "vote")) {
  $insertSQL = sprintf("INSERT INTO tb_sondage (reponse) VALUES (%s)",
                       GetSQLValueString($_POST['reponse'], "int"));

comme suit (en gras ci-dessous) :

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "vote")) {
  $insertSQL = sprintf("UPDATE tb_sondage set compteur = compteur + 1 WHERE id_reponse =%s",
                       GetSQLValueString($_POST['id_reponse'], "int"));

Tester votre fonctionnel dans votre navigateur : si tout se passe bien vous devriez voir le compteur s’incrémenter à chaque vote !

Nous verrons donc bientôt comment afficher en ligne les résultats du vote.
(disponible ici : http://dreamgratuit.canalblog.com/archives/2008/04/03/8589836.html )

---------------------------------------------------------------------------------------

This tutorial is about building a poll (vote / survey) system with Dreamweaver / PHP - MySQL

Posté par caroder à 07:36 - Créer un sondage en PHP avec Dreamweaver - Commentaires [7] - Rétroliens [0] - Permalien [#]

Commentaires

Sondage

Super, tu m'as coupé l'herbe sous le pied, je pensais faire un tuto sur ce sujet, très bien,je suivrais avec plaisir la suite.
JPierre / Asp-php.net / Ultradream.com

Posté par JPierre, 31 mars 2008 à 14:00

Merci JPierre

Merci Jean-Pierre !
Je suis désolée de t'avoir grillé la priorité d'autant que tes tutos sont souvent plus pédagogiques que les miens :))
Et je recommande à tous de visiter ton site Ultradream et tes autres tutoriels sur ASP-PHP.net !!

Posté par caroder, 31 mars 2008 à 19:51

modif d'insertion

Bonjour, je suis en train de faire le tuto, mais le fait de modifier la requete update, ne donne rien dans la base, je l'ai refait deux fois sans succès le compteur ne s'incrémente pas dans la table. Que peut il se passer merci

Posté par reymac, 23 mai 2008 à 19:49

re modif insertion

re bonjour,
j'ai finalement trouvé l'erreur à savoir la non incrémentation du compteur, il y a une erreur dans votre code.

Posté par reymac, 24 mai 2008 à 11:14

Ce serait utile...

... de donner le contenu de l'erreur s'il y a en a une. Cela pourrait aider d'autres internautes.
Quant à moi, ce code fonctionne très bien sur un de mes sites.
Merci par avance.

Posté par dreamweaver, 24 mai 2008 à 19:11

infos

Bonjour, pouvez-vous expliquer l'erreur du code merci

Posté par bbshetan, 11 juin 2008 à 13:32

modif insertion

Bonjour,
Je confirme que le fait de modifier la requête ne donne pas l'incrémentation du compteur.
J'ai vérifié le code plusieurs fois tout est identique au vôtre et rien ne fonctionne comme prévu.
Pouvez-vous me donner la solution ?
Merci beaucoup

Posté par dandey, 15 juillet 2008 à 10:04

Poster un commentaire







Rétroliens

URL pour faire un rétrolien vers ce message :
http://www.canalblog.com/cf/fe/tb/?bid=261388&pid=8520180

Liens vers des weblogs qui référencent ce message :