Prob insert

stp j ai un probleme de l insertion a la base de donnee le botton enregistrer ca marche pas aide moi pour trouve le probleme stp

<?php
$i=1;
$var=mysql_connect("localhost","root","");
mysql_select_db("test",$var);
$sql="select question from examen3";
$result=mysql_query($sql);
WHILE ($tab = mysql_fetch_array($result) )
{
echo "$i question numero: $i $tab[question] <br>";
?>
<DD><INPUT type="text" name="reponseb" ></font><p><font color="#ff0000"></DD>
<?php
$i++;
}
?>
<?php

if (isset($_get['reponseb']))
{$reponseb=$_get['reponseb'];

$var=mysql_connect("localhost","root","");

mysql_select_db("test",$var);

$req="INSERT INTO reponse3 ('reponseb')".
"VALUES ('".$reponseb."')";

$result = mysql_query($req);
}
<form>
<INPUT type="submit" value="enregistrer" name="enregistrer"></form>
?>
<?php
mysql_close();
?>
Configuration: Windows XP
Internet Explorer 6.0

40 réponses

Résumé de la discussion

Plusieurs échanges portent sur l’insertion de réponses dans une base de données via PHP et MySQL, où le formulaire n’enregistre pas les données et où les scripts présentent des erreurs syntaxiques et de logique. Des corrections clés consistent à utiliser $_POST au lieu de $_GET pour récupérer reponseb et à corriger la requête INSERT INTO reponse3 (reponseb) VALUES ('...') en évitant les guillemets autour du nom de colonne. D'autres recommandations portent sur la sécurité et la fiabilité: fermer proprement les bases de données, vérifier le nom de la base et des tables, et préférer une approche PDO/MySQLi avec des requêtes préparées.

Bobot (l’IA à votre service)
  1. il t'affiche quoi comme erreur??
    1. il affiche que l erreue dans la ligne

      <INPUT type="submit" value="valider" name="valider"></form>
  2. bonsoir ,
    tu veut faire qoui exactement..?
    je pense que ton formulaire est un peu mal concu..

    <form>
    <INPUT type="submit" value="enregistrer" name="enregistrer"></form> 
    
    tu met tes balises form pas commei lfaut
    
    c'est plutot comme ca
    <form action="fichier_php-de_la-requete" method="post" (ou GEt) >
    
    <input type="text" value="<? echo $resultat_de_ta _requete_ de_ la_page" name="essai" ?> />
    
    <input type="submit" value="envoyer" name="submit">
    </form>
    


    une petite explication tu encadre des champs input par <form> et </form>
    dans le champs input tu peut afficher un resultat d'une requete qui se trouve dans cette page,et ce resultat sera envoyé sur une autre page ou la elle sera inserée dans ta base.

    tu peut l'envoyer soit par la methode post soit par get.
    ensuite sur ta 2eme page tu recupere la valeur post comme ca
    $var=$_POST['essai']; (ca devient $_get['essai'] si tu utilise la methode get)
    essai c'est le nom de l'input que tu a mis sur la page precedente
    puis ce n'est qu'une fois que tu a recupere cete variable que tu peut l'ajouter a ta table
    en esperant t'avoir eclairé un peu
    @+
    1. j ai fait ce que tu m adit mais il me donne cette erreur (Parse error: parse error, expecting `','' or `';'' in c:\program files\easyphp1-8\www\quiz\reppppp.php on line 33)
      merci pour vos aide

      <?php
      $i=1;
      $var=mysql_connect("localhost","root","");
      mysql_select_db("test",$var);
      $sql="select question from examen3";
      $result=mysql_query($sql);
      WHILE ($tab = mysql_fetch_array($result) )
      {
      echo "$i question numero: $i $tab[question] <br>";
      ?>
      <DD><INPUT type="text" name="reponseb" ></font><p><font color="#ff0000"></DD>
      <?php
      $i++;
      }
      ?>
      <?php

      if (isset($_get['reponseb']))
      {$reponseb=$_get['reponseb'];

      $var=mysql_connect("localhost","root","");

      mysql_select_db("test",$var);

      $req="INSERT INTO reponse3 ('reponseb')".
      "VALUES ('".$reponseb."')";

      $result = mysql_query($req);
      }
      ?>
      <form action="reppppp.php" method="post">
      <input type="text" value="<?echo $reponseb" name=essai" ?> />
      <INPUT type="submit" value="enregistrer" name="enregistrer"></form>

      <?php
      mysql_close();
      ?>
      1. tu l'a creer ton fichier reppppp.php ?
        parce que cette requete
        $req="INSERT INTO reponse3 ('reponseb')".
        "VALUES ('".$reponseb."')"; c'est dans ce fichier qui faut la mettre
        1. mais moi ja i code sur un seul fichier un seul formulaire j ai pas bien compri aide moi stp
      2. faut que j'y aille
        je t'oublie pas ,je te met un petit topo demain
        @+
        1. stp mon code doit etre realise maintennat car de main doit etre pret
          stp aide moi de trouver le probleme
      3. va faire un tour du cote du site phpfacile ,il ya plein de tuto

        si tu veut poste moi ce que tu veut faire en MP et demain matin t'aura ton code
        ce soir c'est relache ;-)
        1. voila je t explique ce que je veux faire
          j ai cree un formulaire des question quand je tape les question sur cette formulaire les question sont envoye a la base de donne c ad sont enregistere dan ma table (question)
          et j ai cree des formulaire qui selectinne a partie de la table (question ) les question et apres je tape la reponse de ses question pius je veeux que la reponse enregistrer dans la base de donnee dans la table (reponse)
          mais tout ca marche le probleme que j ai sur la formulaire de la reponse
          que quand je tape la repnse ses reponse ne s enregistre pas a la tabe reponse
          cest ca mon probleme sur ce code la :

          <?php
          $i=1;
          $var=mysql_connect("localhost","root","");
          mysql_select_db("test",$var);
          $sql="select question from examen3";
          $result=mysql_query($sql);
          WHILE ($tab = mysql_fetch_array($result) )
          {
          echo "$i question numero: $i $tab[question] <br>";
          ?>
          <DD><INPUT type="text" name="reponseb" ></font><p><font color="#ff0000"></DD>
          <?php
          $i++;
          }
          ?>
          <?php

          if (isset($_get['reponseb']))
          {$reponseb=$_get['reponseb'];

          $var=mysql_connect("localhost","root","");

          mysql_select_db("test",$var);

          $req="INSERT INTO reponse3 ('reponseb')".
          "VALUES ('".$reponseb."')";

          $result = mysql_query($req);
          }
          ?>
          <form action="reppppp.php" method="post">
          <input type="text" value="<?echo $reponseb" ?>/>
          <INPUT type="submit" value="enregistrer" name="enregistrer">

          </form>

          <?php
          mysql_close();
          ?>
          je croix mois que le probleme que sur la variable" reponseb " car il ne se enregistre pas
          merci pour vos aide
      4. bonsoir
        je crois que ton problemme et que tu dois integrer
        if (isset($_post['reponseb']))
        {$reponseb=$_post['reponseb'];
        et nn pas get
        et aussi
        $req="INSERT INTO reponse3 ('reponseb')".
        "VALUES ('".$reponseb."')";
        dans la boucle
        essaye et repond moi
        :)
        1. bonjour ,
          essai comme ca
          ton fichier question.php
          <html>
          <head>
          <body>
          <?php
          $i=1;
          $var=mysql_connect("localhost","root","");
          mysql_select_db("test",$var);
          $sql="select question from examen3";
           $result=mysql_query($sql);
           <td><input type="submit" value="envoyer" name="submit"></td>
          
          <!--on ferme le formailre-->
           </form>
          </body>
          </head>
          </html>
          


          maintenant ton fichier repppp.php
          <?
          //on verifie que la reponse est bien presente
          if (isset($_POST['reponseb']))
          //tu peut faire d'autre verification ensuite si tu veut
          
          //c'est OK j'attribue la varaible $reponseb
          $reponseb=$_get['reponseb'];
          
          //connexion
          $var=mysql_connect("localhost","root","");
          
          //selection de ta base
          mysql_select_db("test",$var);
          
          //insertion
          $sql = 'INSERT INTO reponse3('reponseb') VALUES ("$reponseb")';  
          
          
          $result = mysql_query($req);
          //on verifie que l'insertion c'est bien passée
          if(!$result)
          {
          //la reponse est pas enregistrée
          echo 'la réponse n'est pas prise en compte';
          exit();
          }
              else
            {
             //l'insertion s'est bien passée
              echo 'la réponse est enregistrée';
              mysql_close(); 
            //tu met un bouton de retour ou tu redirige vers une autre page
             }
          ?>
          


          voila ca devrais fonctionner
          1. merci lewis
            jai fais ce que tu ma dis mais
            le code me donne une erreur
            <?
            //on verifie que la reponse est bien presente
            if (isset($_POST['reponseb']))
            //tu peut faire d'autre verification ensuite si tu veut

            //c'est OK j'attribue la varaible $reponseb
            $reponseb=$_post['reponseb'];

            //connexion
            $var=mysql_connect("localhost","root","");

            //selection de ta base
            mysql_select_db("test",$var);

            //insertion
            $sql = "INSERT INTO reponse3(reponseb) VALUES ("$reponseb")"; //ligne de lerreur

            $result = mysql_query($req);
            //on verifie que l'insertion c'est bien passée
            if(!$result)
            {
            //la reponse est pas enregistrée
            echo 'la réponse n'est pas prise en compte';
            exit();
            }
            else
            {
            //l'insertion s'est bien passée
            echo 'la réponse est enregistrée';
            mysql_close();
            //tu met un bouton de retour ou tu redirige vers une autre page
            }
            ?>
            1. bonjour
              voila la ligne d'erreur
              $sql = "INSERT INTO reponse3(reponseb) VALUES ("$reponseb")";
              je ne sais pas pq il me donne lerreur ici
              1. j'ai plus l'habitude avec mysqli mais essaye comme ca

                $sql = 'INSERT INTO reponse3 (reponseb) VALUES ("$reponseb")';
                1. merci lewis
                  j ai essai mais ca marche pas et j ai change le code pars ce code la
                  fichier quest .php
                  <html>
                  <body>
                  <form method=post action=quest_re.php>
                  <?php
                  $i=1;
                  $var=mysql_connect("localhost","root","");
                  mysql_select_db("test",$var);
                  $sql="select question from examen3";
                  $result=mysql_query($sql);
                  WHILE ($tab = mysql_fetch_array($result) )
                  {
                  echo "$i question numero: $i $tab[question] <br>";
                  ?>
                  <DD><INPUT type="text" name='<?php $i; ?>' ></font><p><font color="#ff0000"></DD>
                  <?php

                  $i++;} ?>

                  <DD><INPUT type="text" name=nbre value=<?php echo"$i ";?> > </font><p><font color="#ff0000"></DD>

                  <td><input type="submit" value="envoyer" name="submit"></td>

                  <!--on ferme le formailre-->
                  </form>
                  </body>
                  </html>

                  et l autre fichier quesr_re.php
                  <?php
                  if(isset($_post[$nbre]))
                  $i=$nbre;

                  $var=mysql_connect("localhost","root","");
                  mysql_select_db("test",$var);

                  while($i!=0)
                  {
                  if(isset($_post['$i']))
                  $rep_quest=$_post['$i'];
                  $sql_2="Insert into reponse3(reponseb) values('$rep_quest')";
                  $result_2=mysql_query($sql);
                  $i--;
                  }
                  ?>

                  et les faute qui me donne sont:
                  Notice: Undefined variable: nbre in c:\program files\easyphp1-8\www\comm\quest_re.php on line 2

                  Notice: Undefined variable: i in c:\program files\easyphp1-8\www\comm\quest_re.php on line 8
                  merci pour vos aide
                  1. re ,
                    oui logique que $nbre soit indefini

                    tu met ca ===>$i=$nbre;
                    met plutot ca===>$i=$_POST['$nbre'];

                    et la tu met ca =>if(isset($_post['$i']))
                    $rep_quest=$_post['$i'];

                    met plutot ca==>if(isset($_post['nbre']))
                    $rep_quest=$i;

                    dans ton formulaire met bien les " autour de ta balise form action="

                    tiens moi au courant
                    @+
                    1. merci pour tout
                      mon probleme reste le meme
                      Notice: Undefined variable: nbre in c:\program files\easyphp1-8\www\comm\quest_re.php on line 2

                      Notice: Undefined variable: i in c:\program files\easyphp1-8\www\comm\quest_re.php on line 8
                      merci pour vos aide'
                      1. re ,
                        je pense que c'est dans ton formulaire

                        d'un coté tu met ca
                        1) <DD><INPUT type="text" name='<?php $i; ?>' ></font><p><font color="#ff0000"></DD>
                        et apres tu met ca
                        2) <DD><INPUT type="text" name=nbre value=<?php echo"$i ";?> > </font><p><font color="#ff0000"></DD>

                        essaye de changer le 1
                        par
                        1) <td><INPUT type="text" name=id value=<? echo id recupere ?></font><p><font color="#ff0000"></td>

                        et dans ton fichier php tu recupere la variable post_id
                        $id==_post['id']; //c'est l'id de ta question
                        $rep_quest=$_post['$i']; //c'est la reponse

                        ta requete
                        $sql_2="Insert into reponse3(reponseb) values('$rep_quest') WHERE id='$id'";
                        1. merci et pardonne moi ;;

                          j ai essaye mais il me donne encord des erreur cette foi si me donne sur le fichier quest.php
                          cette erreur(Parse error: parse error, expecting `','' or `';'' in c:\program files\easyphp1-8\www\comm\quest.php on line 14
                          et l autre fichier me donne aussi une erreur (Parse error: parse error in c:\program files\easyphp1-8\www\comm\quest_re.php on line 4
                          merci pour vos aide
                          1. bonjour regarde dans ton script à quelle ligne ca correspond ?
                        2. merci pour vos aides lewis;

                          voila le code que jai utilise dans le 2eme fichier

                          <?php
                          if(isset($_post[$nbre])and (isset($_post[$id]))
                          $i=$_post[$nbre];
                          $id==$_post[$id]; //c'est l'id de La question
                          $rep_quest=$_post[$i]; //c'est la reponse

                          $var=mysql_connect("localhost","root","");
                          mysql_select_db("test",$var);

                          while($i!=0)
                          {
                          if(isset($_post['nbre']))
                          $rep_quest=$i;
                          $sql_2="Insert into reponse3(reponseb) values('$rep_quest') WHERE id='$id'";
                          $result_2=mysql_query($sql);
                          $i--;
                          }
                          ?>
                          mais il me donne lerreur dans cette ligne
                          $i=$_post[$nbre];
                          merci ;
                          1. bonjour ,
                            rajoute des ' ici

                            $i=$_post['$nbre '] ;

                            et modifie ca

                            while($i!=0) en while(!$i=0)
                            @+
                            1. merci et pardonne moi ;;

                              j ai essaye mais l erreur reste le meme sur le fichier quest.php
                              cette erreur(Parse error: parse error, expecting `','' or `';'' in c:\program files\easyphp1-8\www\comm\quest.php on line 14
                              et l autre fichier me donne comme erreur
                              Notice: Undefined variable: nbre in c:\program files\easyphp1-8\www\comm\quest_re.php on line 2

                              Notice: Undefined variable: id in c:\program files\easyphp1-8\www\comm\quest_re.php on line 4

                              Notice: Undefined variable: _post in c:\program files\easyphp1-8\www\comm\quest_re.php on line 4

                              Notice: Undefined variable: _post in c:\program files\easyphp1-8\www\comm\quest_re.php on line 5

                              Notice: Undefined variable: i in c:\program files\easyphp1-8\www\comm\quest_re.php on line 11

                              aide moi stp
                              • 1
                              • 2