Sondage de satisfaction avec Mysql

Sondage de satisfaction avec Mysql - PHP - Programmation

Marsh Posté le 30-05-2017 à 13:39:39    

    Bonjour,  
 
Je suis entrain actuellement de faire un sondage de satisfaction en php et mysql cependant je bloque sur un endroit.
Je ne sais pas comment faire pour passer à la question suivante une fois que l'utilisateur à répondu à la précédente..
 

Citation :


<?php
// on se connecte à notre base de données
/*$base = mysql_connect ('localhost','root','');
mysql_select_db ('satisfaction',$base);*/
            $base = mysqli_connect('localhost', 'root', '', 'satisfaction');
             
// on prépare une requête pour sélectionner l'id et la question du dernier sondage (on sélectionne les questions, et on en prend qu'une (le LIMIT 0,1) et ce, dans un ordre décroissent (DESC), soit en fait, la dernière question posée).
            $sql = 'SELECT id, question FROM sondage_questions ORDER BY id  ';
             
// on lance la requête
/*$req = mysql_query ($sql) or die ('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());*/
            $req = $base->query($sql);
             
// on récupère le résultat dans un tableau associatif
            $data = mysqli_fetch_array ($req);
 
            $nb_sondage = mysqli_num_rows($req);
 
            if ($nb_sondage == 0) {
              echo 'Aucun sondage.';
            }else {
  // on libère l'espace mémoire alloué à cette requête
              mysqli_free_result ($req);
              ?>
              <div class="type-question">
 
                <p class="question">
                  <?php
  // on affiche la question
                    echo stripslashes(htmlentities(trim($data['question']))),'<br />';
                  ?>
                </p>
              </div>
              <?php
  // on prepare l'affichage de notre formulaire permettant de voter
                echo '<form action = "index.php" method = "post">';
 
  // on prépare une requête permettant de sélectionner les réponses possibles se rapportant à ce même sondage
                $sql = 'SELECT id, reponse FROM sondage_reponses WHERE id_sondage="'.$data['id'].'"';
 
  // on lance la requête
/*  $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());*/
                $req = $base->query($sql);
                 
  // on prépare notre boucle pour afficher les différents choix possibles de réponses
                while ($donnees = mysqli_fetch_array($req)) {
  // on affiche des boutons radio pour les différents choix de réponses possibles
                  echo '<input type="radio" name="choix" value="' , $donnees['id'] , '"> ' , stripslashes(htmlentities(trim($donnees['reponse']))) , '<br />';
                }
              ?>
              <input type = "hidden"  name = "sondage_en_cours" value = "<?php echo $data['id']; ?>">
              <input type = "submit" name="go" value = "Vote">
            </form>
            <?php
          }
 
// on libère l'espace mémoire alloué à cette requête
          mysqli_free_result ($req);
 
// on ferme la connection à notre base de données
          mysqli_close ($base);
          ?>
          <br /><br />
          <a href="sondage_resultats.php">Voir les résultats</a>
          <?php
           
// on affiche les erreurs éventuelles
          if (isset($erreur)) echo '<br /><br />',$erreur;
          ?>


 
 

Reply

Marsh Posté le 30-05-2017 à 13:39:39   

Reply

Marsh Posté le 30-05-2017 à 21:27:10    

Bonjour,
 

Code :
  1. // on prépare une requête pour sélectionner l'id et la question du dernier sondage (on sélectionne les questions, et on en prend qu'une (le LIMIT 0,1) et ce, dans un ordre décroissent (DESC), soit en fait, la dernière question posée).
  2.             $sql = 'SELECT id, question FROM sondage_questions ORDER BY id  ';


 
 :??:  
 
Le commentaire ne colle visiblement pas à la ligne de code alors que la réponse est probablement ici même si je ne suis pas certain de saisir la question ou du moins la réponse à y apporter. La question se situe t-elle au niveau de la requête à effectuer ou dans le déroulement des actions?
Si c'est à propos de la requête il nous faudrait la structure de ta bdd même si on semble la deviner. Si c'est à propos du déroulement il nous faudrait en savoir plus sur le traitement réalisé après envoi du formulaire que tu nous montres.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 01-06-2017 à 10:14:30    

Citation :


 
// on prépare une requête pour sélectionner l'id ainsi que la question.
            $sql = 'SELECT id, question FROM sondage_questions ORDER BY id  ';


 
C'est peut-être mieux ainsi .
 
Pour la base de donnée :  
 

Citation :


On a deux tables :  
 
- question_satisfaction : id - question
- reponses_satisfaction : id - id_sondage( liée avec l'id de la table précédente) - réponse - nb_réponse
 


 
Ce que j'aimerais c'est quand on clique sur le bouton "vote", on va enregistrer la réponse dans la table reponses_satisfaction ( incrémenter de 1 nb_reponses) puis ensuite passer à la question suivante.  

Reply

Marsh Posté le 01-06-2017 à 19:07:07    

On est bien d'accord que tu as compris que :

Code :
  1. <form action = "index.php" method = "post">


 
veut dire que les données entrées dans le formulaire sont envoyées à la page "index.php" par le méthode "post" une fois que l'utilisateur valide le formulaire?


Message édité par MaybeEijOrNot le 01-06-2017 à 19:07:33

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed