IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Système de sondage [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 106
    Par défaut Système de sondage
    Bonjour, j'ai essayer de créer un système de sondage, mais j'ai plusieurs problème (enfin beaucoup )

    La page du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    	mysql_connect("localhost", "root", "");
    mysql_select_db("test");
     
    $retour = mysql_query('SELECT * FROM sondage');
    while ($affiche = mysql_fetch_array($retour)) 
    {
    ?>
    <form method="post" action="votez.php"/>
    <h4><?php echo $affiche['question']; ?></h4>
    <hr>
    <p><input type="radio" name="sondage" value="<?php echo $affiche['reponse1']; ?>" id="<?php echo $affiche['reponse1']; ?>" /> <label for="<?php echo $affiche['reponse1']; ?>"><?php echo $affiche['reponse1']; ?></label><br />
    <input type="radio" name="sondage" value="<?php echo $affiche['reponse2']; ?>" id="<?php echo $affiche['reponse2']; ?>" /> <label for="<?php echo $affiche['reponse2']; ?>"><?php echo $affiche['reponse2']; ?></label><br />
    <input type="radio" name="sondage" value="<?php echo $affiche['reponse3']; ?>" id="<?php echo $affiche['reponse3']; ?>" /> <label for="<?php echo $affiche['reponse3']; ?>"><?php echo $affiche['reponse3']; ?></label><br />
    <input type="radio" name="sondage" value="<?php echo $affiche['reponse4']; ?>" id="<?php echo $affiche['reponse4']; ?>" /> <label for="<?php echo $affiche['reponse4']; ?>"><?php echo $affiche['reponse4']; ?></label></p>
     
    <hr>
    <input type="hidden" name="id" value="<?php echo $affiche['id']; ?>" />
    <input type="hidden" name="ip_voteur" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>" />
    <input type="submit" value="Envoyer !"/>
    </form>
    <?php
    }
    ?>
    La page de traitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
    	mysql_connect("localhost", "root", "");
    mysql_select_db("test");
     
    if (isset($_POST['sondage'])) 
    {
    $choix = addslashes($_POST['sondage']);
    $id = addslashes($_POST['id']);
    $ip_voteur = addslashes($_POST['ip_voteur']);
     
    $requete = mysql_query('
    SELECT id_reponse
    FROM reponse WHERE id_reponse=\'' . $id . '\'');
    $verif = mysql_fetch_assoc($requete);
     
    if($ip_voteur != $verif['id_reponse'])
    		   {
     
    mysql_query("INSERT INTO reponse VALUES('', '" . $choix . "', '" . $ip_voteur . "')");
    echo'<p>Sondage enregistrer avec sucées !</p>';
    }
      }
    	else
    	{
    	echo'<p>Le sondage n\'a pas pu être enregistrer !<br />
    	Ou alors vous avez déjà voter !</p>';
    	}
    	?>
    Donc, le problème c'est que je n'arrive pas à faire en sorte que le membre doit voter qu'une seule fois est pas autant qu'il veut..

    Sinon, je ne c'est pas du tout comment m'y prendre pour faire la page resultat.php. Pour afficher par exemple : 35.4% ?

    Par avance, merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($ip_voteur != $verif['id_reponse'])
    Je ne comprends pas bien la structure de ta table : quel est le lien entre $ip_voteur et le champ id_reponse ?


    Sur le fond ton systeme ne va pas du tout : le posteur peut mettre l'ip qu'il veut puisqu'elle transite par un formulaire.

    Ce qu'il faut faire en gros :
    - L'utilisateur fait son vote.
    - Tu regardes dans la base s'il y a deja un enregistrement avec son ip (SELECT ... FROM table WHERE ip=.....)
    - Si non, tu enregistres son vote et son ip.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 106
    Par défaut
    J'ai modifié les deux pages comme vous me l'avez dis est sa marche.
    J'ai mis en place une vérification, pour le membre ne puisse pas voter 2 fois.

    Mais, je ne c'est pas comment faire pour les résultat s'affiche comme sa :
    30.2% ==> 12.2%, etc...

    Pour les pourcentage, je ne c'est pas comment faire. Vous pouviez m'aider ?
    Merci.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    % = count(nbre_de_reponses_pour_un_choix) * 100 / count(nbre_de_reponses_total)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 106
    Par défaut
    Bonjour, j'ai un problème, sa m'affiche 100%...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
    	mysql_connect("localhost", "root", "");
    mysql_select_db("test");
     
    $id = $_GET['id_sondage'];
     
    $requete = mysql_query('
    SELECT *
    FROM sondage  WHERE id_sondage=\'' . $id . '\'');
    $resultat = mysql_fetch_assoc($requete);
    ?>
     
    <h4><?php echo $resultat['question']; ?></h4>
    <hr>
    <ul>
    <li><?php echo $resultat['reponse1'];?></li>
    <li><?php echo $resultat['reponse2'];?></li>
    <li><?php echo $resultat['reponse3'];?></li>
    <li><?php echo $resultat['reponse4'];?></li>
    </ul>
    <hr>
    <?php 
    $requete = mysql_query('
    SELECT *
    FROM reponse WHERE id_reponse=\'' . $id . '\'');
    $resultat = mysql_fetch_assoc($requete);?>
     
    <u><?php echo $resultat['choix'];?> </u>
     
    <?php
    function Pourcentage($Nombre, $Total) 
    {
    	return $Nombre * 100 / $Total;
    }
    $Pourcent =  Pourcentage($resultat['nbr_vote'], $resultat['nbr_vote']);
    echo $Pourcent.'%';
    ?>
    Merci.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu as mis deux fois $resultat['nbr_vote'] comme argument.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mini sondage pour employés / directeur système informatique
    Par ez3kiel dans le forum Autres Solutions d'entreprise
    Réponses: 0
    Dernier message: 25/11/2009, 14h33
  2. [Sondage] Quel système de construction logicielle utilisez-vous?
    Par Kurisu dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 22/01/2009, 18h42
  3. [Système] Système de sondage
    Par djalilk dans le forum Langage
    Réponses: 5
    Dernier message: 26/03/2007, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo