Partage
  • Partager sur Facebook
  • Partager sur Twitter

Incrémenter une variable à chaque soumission

D'un formulaire

Sujet résolu
    18 juillet 2019 à 12:03:01

    Bonjour
     Je fais un petit système d'enregistrement avec un formulaire, je veut que chaque utilisateur puisse être doté d'un numéro à chaque fois qu'un utilisateur appuis sur envoyer, donc la 1ere personne par exemple : auras le numéro 2019, et le second 2020, je pensais crée une table dans la base de données avec une valeur pas défaut de 2019 puis le mettre auto-increment ,mais apparemment c'est ne pas possible .
     Quand j'appuie sur submit rien ne se passe.
    Merci

    -
    Edité par Moilee Ng Kongo 18 juillet 2019 à 12:29:04

    • Partager sur Facebook
    • Partager sur Twitter
      18 juillet 2019 à 17:52:17

      <?php
      $bdd=new PDO('mysql:host=localhost;dbname=inscription_univ','root','');
      
      if(isset($_POST['submit']))
      {
          $matricule=2019;
      
          if(isset($_POST['nom']))
          {
          $nom=$_POST['nom'];
      
          $insert=$bdd->prepare('INSERT INTO test(matricule,nom) VALUES(?,?)');
          $insert->execute(array($matricule,$nom));
          
          }
          $matricule=$matricule+1;
      }
      ?>
      <html>
          <form method="post">
              <input type="text" name="nom" placeholder=" nom" required/>
              <br/>
              <input type="submit" value="Envoyer"name="submit"/>
      </form>
      </html>
      
      
      <?php
       $recupmatricule=$bdd->prepare('SELECT*FROM test WHERE nom=?');
       $recupmatricule->execute(array($nom));
       while($mat=$recupmatricule->fetch())
       {
          echo " votre matriculte est".' ' . $mat['matricule'].'<br/>';
       }
      ?>
      • Partager sur Facebook
      • Partager sur Twitter
        18 juillet 2019 à 18:29:47

        Salut, pour le coup, c'est normal , à chaque envoi $matricule vaut 2019
        • Partager sur Facebook
        • Partager sur Twitter
          18 juillet 2019 à 18:43:49

          Bonjour.

          En effet, si tu veux faire comme ça, le mieux serait qu'avant de faire l'insertion, que tu récupères la valeur de la colonne matricule du dernier enregistrement de la table, puis que tu utilises celle-ci pour définir la valeur de la colonne matricule pour l'enregistrement à insérer.

          Il te faut bien sûr prendre en compte le cas où tu n'es pas encore d'enregistrement dans la table (ou qu'il n'y en ai plus).

          Donc pour schématiser un peu:

          • Tu laisse ta variable définie comme elle est
          • Tu fais une requête pour récupérer le dernier enregistrement de la table
          • Si tu récupères un enregistrement, tu modifies la valeur de la variable avec l'incrémentation de la valeur de l'enregistrement récupéré
          • Puis tu n'as plus qu'a utiliser la variable pour définir la valeur de la colonne matricule pour le nouvel enregistrement

          De cette manière, si tu ne récupères pas d'enregistrement lors de la 3ème étape car la condition ne serait pas respectée, tu auras la valeur par défaut de la variable.

          -
          Edité par Lartak 18 juillet 2019 à 18:44:36

          • Partager sur Facebook
          • Partager sur Twitter

          Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

            19 juillet 2019 à 12:24:27

            Comme sur des roulettes,vous êtes magnifique. Merci
            <?php
            $bdd=new PDO('mysql:host=localhost;dbname=inscription_univ','root','');
            
            if(isset($_POST['submit']))
            {
                if(isset($_POST['nom']))
                {
                    //$mat=20;
                    $nom=$_POST['nom'];
            
            
             $recupmatricule=$bdd->query('SELECT matricule FROM test ORDER BY id DESC');
             $recup=$recupmatricule->fetch();
                    
                    $mat = $recup['matricule']+1;  
            
             $insert=$bdd->prepare('INSERT INTO test(matricule,nom) VALUES(?,?)');
             $insert->execute(array($mat,$nom));
                    echo " ok";
                    
                }
             
            }
            ?>
            
            <html>
                
                <form method="post">
                    <input type="text" name="nom" placeholder=" nom" required/>
                    <br/>
                    <input type="submit" value="Envoyer"name="submit"/>
            <?php
            if(isset($recup['matricule']))
            {
                echo $recup['matricule']+1;
            }
            
              ?>   
            </form>
            </html>
            
            
            


            -
            Edité par Moilee Ng Kongo 19 juillet 2019 à 12:25:34

            • Partager sur Facebook
            • Partager sur Twitter

            Incrémenter une variable à chaque soumission

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown