Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer les résultats d'un tableau

APPEL vers MySQL

Sujet résolu
    22 mai 2019 à 12:41:01

    Bonjour,

    Je rencontre un problème dans la récupération de variables , je créer un tableau de 3 colonnes dans lequel je souhaite :

    1er colonne : Insertion SQL depuis une BDD "description"

    2em colonne : Récupérer une variable "controle" ayant une valeur : oui ou non ou na

    3em colonne : Récupérer un commentaire "commentaire"



    J'essaye de récupérer les variables, mais je n'ai pas réussi :

    J'ai essayé avec une boucle foreach  ou encore une boucle for mais je n'arrive pas a le mettre en place et je pense que je ne récupère pas ou mal les variables contrôle et commentaire

    Je souhaite donc connaître vos avis et des possibles solutions si vous en connaissez

    Merci d'avance

    Cdt,


    <form action="ap_modele.php" method="POST">
                            <label class="bmd-label-floating">Commande</label>
                              <input type="text"  name="commande" value="<?php echo $_POST['commande'] ?>">
                            <label class="bmd-label-floating">VISA</label>
                              <input type="text"  name="visa" value="<?php echo $_POST['visa'] ?>">
                            <label class="bmd-label-floating">Type modéle</label>
                              <input type="text"  name="modele" value="<?php echo $_POST['modele'] ?>">
     <br><br>
        
        <table  class="table table-bordered table-striped dt-responsive nowrap" name="test">
                                            <thead class="thead-light">
                                            <tr >
                                                <th>Vérification</th>
                                                <th>Contrôle <br> OUI / NON / NA</th>
                                                <th>Commentaire</th>
    
                                            </tr>
                                            </thead>
                                            <tbody>
                                                
    
       <?php               
               $sql = mysqli_query($connexion, "SELECT description FROM contenu_modele WHERE id_modele = ". $id_mod ."");
                                                    
                         while(($cmd=mysqli_fetch_assoc($sql)) )
                          { // On lit les entrées une à une grâce à une boucle
                              echo '<tr> ';
                              echo '<form method="POST"> ';
                              echo "<th name='description[]'>" . $cmd["description"] . "</th>";
                              
                              echo '<th name="controle[]" class="switchery-demo">
                              <input type="checkbox"  name="controle" value="OUI" data-size="small" data-plugin="switchery" data-color="#1bb99a"/>
                              <input type="checkbox"  name="controle" value="NON" data-size="small" data-plugin="switchery" data-color="#ff5d48"/>
                              <input type="checkbox"  name="controle" value="NA" data-size="small" data-plugin="switchery" data-color="#f1b53d"/>
                              </th>';
                              echo '<th name="commentaire[]"><input type="text" ></th>';
                              echo '</form> ';
                              echo '</tr> ';
                                               
                                         }
                
      ?>
    
                                           
                                
                                        </tbody>
        </table>        
    
    <div class="button-list">
    <button type="submit" name="validation" class="btn btn-block btn-dark">Valider</button>                                 
    </div>               
    </form>
    <?php
    
    
    if(isset($_POST["validation"])) 
    {
       $commande = mysqli_real_escape_string($connexion, $_POST["commande"]);
       $visa = mysqli_real_escape_string($connexion, $_POST["visa"]);
       $modele = mysqli_real_escape_string($connexion, $_POST["modele"]);
        
    $id_modele = mysqli_query($connexion, "SELECT id FROM modele WHERE nom ='" .$modele. "'");
    $id_modele = mysqli_fetch_assoc($id_modele);
    $id_mod = $id_modele["id"];
        
        if ($id_mod == 1) {
            $table_modele = "controle_electrique";
            $table_contenu = "contenu_controle_electrique";
        }
        elseif ($id_mod == 2) {
            $table_modele = "rapport_test";
            $table_contenu = "contenu_rapport_test";
        }
        elseif ($id_mod == 3) {
            $table_modele = "controle_qualite";
            $table_contenu = "contenu_controle_qualite";
        }
        
    $id_commande_avant = mysqli_query($connexion, "SELECT id FROM $table_modele WHERE id_commande ='" .$commande. "' AND id_modele ='".$id_mod."' ");
    $id_visa = mysqli_query($connexion, "SELECT id FROM utilisateur WHERE nom ='" .$visa. "'");
        
    $id_commande_avant = mysqli_fetch_assoc($id_commande_avant);
    $id_comm_avant = $id_commande_avant["id"];
     
    $id_visa = mysqli_fetch_assoc($id_visa);
    $id_vis = $id_visa["id"];
    
    if (empty($id_comm_avant)) {
    $temp="Nouvelle commande";
    $add_commande = mysqli_query($connexion, "INSERT INTO $table_modele (id_commande,id_modele) VALUES ('$commande','$id_mod')");
    }
    else {
    $temp="Commande existante";
    $update_commande = mysqli_query($connexion, "UPDATE $table_modele SET id_commande = '".$commande."' , id_modele ='".$id_mod."'  ");   
    }
        
    $id_commande_apres= mysqli_query($connexion, "SELECT id FROM $table_modele WHERE id_commande ='" .$commande. "' AND id_modele ='".$id_mod."' ");
    $id_commande_apres = mysqli_fetch_assoc($id_commande_apres);
    $id_comm_apres = $id_commande_apres["id"];
    }
    
    ?>  




    • Partager sur Facebook
    • Partager sur Twitter

    Cdt,

    Romain.P

      22 mai 2019 à 13:50:39

      Bonjour.

      Ton premier problème, est que la variable id_mod n'est définie que si un formulaire est soumis, sauf qu'en dehors de la condition, tu cherches à faire une requête SQL en utilisant cette variable, qui par conséquent n'existe pas tant qu'un formulaire n'est pas soumis.

      Le second, c'est que tu cherches à définir des attributs value d'input, via des données postées via un formulaire, sans même vérifier si un formulaire à été soumis et que les index dans la variable _POST existent bien.

      • 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.

        22 mai 2019 à 14:17:21

        Merci de ta réponse,

        Je récupère correctement toutes mes variables, le problème est bien de récupérer les valeurs du tableau

        modele.php
        <table  class="table table-bordered table-striped dt-responsive nowrap" name="test">
                                                <thead class="thead-light">
                                                <tr >
                                                    <th>Vérification</th>
                                                    <th>Contrôle <br> OUI / NON / NA</th>
                                                    <th>Commentaire</th>
         
                                                </tr>
                                                </thead>
                                                <tbody>
                                                     
         
           <?php              
                   $sql = mysqli_query($connexion, "SELECT description FROM contenu_modele WHERE id_modele = ". $id_mod ."");
                                                         
                             while(($cmd=mysqli_fetch_assoc($sql)) )
                              { // On lit les entrées une à une grâce à une boucle
                                  echo '<tr> ';
                                  echo '<form method="POST"  #UTILE ou PAS ?> ';
                                  echo "<th name='description[]'>" . $cmd["description"] . "</th>";
                                   
                                  echo '<th name="controle[]" class="switchery-demo">
                                  <input type="checkbox"  name="controle" value="OUI" data-size="small" data-plugin="switchery" data-color="#1bb99a"/>
                                  <input type="checkbox"  name="controle" value="NON" data-size="small" data-plugin="switchery" data-color="#ff5d48"/>
                                  <input type="checkbox"  name="controle" value="NA" data-size="small" data-plugin="switchery" data-color="#f1b53d"/>
                                  </th>';
                                  echo '<th name="commentaire[]"><input type="text" ></th>';
                                  echo '</form> ';
                                  echo '</tr> ';
                                                    
                                             }
                     
          ?>
         
                                                
                                     
                                            </tbody>
            </table>       
        
        
        ap_modele.php
        if(isset($_POST["validation"]))
        {
        
        // Comment récupérer les valeurs du tableau
        
        
        }

        Et donc en effet ne n'arrive pas à savoir si mes variables sont bien écrites 

        echo "<th name='description[]'>" . $cmd["description"] . "</th>";
                                   
        echo '<th name="controle[]" class="switchery-demo">
        <input type="checkbox"  name="controle" value="OUI" data-size="small" data-plugin="switchery" data-color="#1bb99a"/>
        <input type="checkbox"  name="controle" value="NON" data-size="small" data-plugin="switchery" data-color="#ff5d48"/>
        <input type="checkbox"  name="controle" value="NA" data-size="small" data-plugin="switchery" data-color="#f1b53d"/>
        </th>';
        echo '<th name="commentaire[]"><input type="text" ></th>';
        
        

        Je peut récupérer mes valeurs  de " . $cmd["description"] . " avec un foreach  mais je ne sais pas ,comment je peut récupérer celle de "controle" et "commentaire" .



        -
        Edité par Nerooz 22 mai 2019 à 14:49:40

        • Partager sur Facebook
        • Partager sur Twitter

        Cdt,

        Romain.P

          22 mai 2019 à 14:51:50

          Pour pouvoir soumettre un formulaire et par conséquent pouvoir en récupérer les données soumises, il te faut par exemple un input de type submit dans le formulaire.

          Par contre, il te faut un input de type hidden pour l'id correspondant à l'enregistrement de la table contenu_modele.

          Sinon, ce n'est pas sur la balise th que tu dois définir l'attribut name commentaire, mais sur l'input.

          En ce qui concerne la récupération de controle et commentaire, si les données à récupérer se trouvent dans d'autres tables, dans ta requête SQL auprès de la table contenu_modele, il te faut faire des jointures avec les autres tables.

          • 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.

            22 mai 2019 à 15:52:50

            J'ai essayé de modifier le code et j'ai trouvé des briques par-ci par-là je rencontre encore un problème

            <?php
            #ap_modele.php
            
            
            if(isset($_POST["validation"])) 
            {
               $commande = mysqli_real_escape_string($connexion, $_POST["commande"]);
               $visa = mysqli_real_escape_string($connexion, $_POST["visa"]);
               $modele = mysqli_real_escape_string($connexion, $_POST["modele"]);
                    
            $id_modele = mysqli_query($connexion, "SELECT id FROM modele WHERE nom ='" .$modele. "'");
            $id_modele = mysqli_fetch_assoc($id_modele);
            $id_mod = $id_modele["id"];
                
                if ($id_mod == 1) {
                    $table_modele = "controle_electrique";
                    $table_contenu = "contenu_controle_electrique";
                }
                elseif ($id_mod == 2) {
                    $table_modele = "rapport_test";
                    $table_contenu = "contenu_rapport_test";
                }
                elseif ($id_mod == 3) {
                    $table_modele = "controle_qualite";
                    $table_contenu = "contenu_controle_qualite";
                }
                
            $id_commande_avant = mysqli_query($connexion, "SELECT id FROM $table_modele WHERE id_commande ='" .$commande. "' AND id_modele ='".$id_mod."' ");
            $id_visa = mysqli_query($connexion, "SELECT id FROM utilisateur WHERE nom ='" .$visa. "'");
                
            $id_commande_avant = mysqli_fetch_assoc($id_commande_avant);
            $id_comm_avant = $id_commande_avant["id"];
             
            $id_visa = mysqli_fetch_assoc($id_visa);
            $id_vis = $id_visa["id"];
            
            if (empty($id_comm_avant)) {
            $temp="Nouvelle commande";
            $add_commande = mysqli_query($connexion, "INSERT INTO $table_modele (id_commande,id_modele) VALUES ('$commande','$id_mod')");
            }
            else {
            $temp="Commande existante";
            $update_commande = mysqli_query($connexion, "UPDATE $table_modele SET id_commande = '".$commande."' , id_modele ='".$id_mod."'  ");   
            }
                
            $id_commande_apres= mysqli_query($connexion, "SELECT id FROM $table_modele WHERE id_commande ='" .$commande. "' AND id_modele ='".$id_mod."' ");
            $id_commande_apres = mysqli_fetch_assoc($id_commande_apres);
            $id_comm_apres = $id_commande_apres["id"];
                
            
                $i = 0;
                 foreach ($_POST as $val) { 
             #74           $controle = $_POST["controle"][$i];
             #75           $commentaire = $_POST["commentaire"][$i];
             #76           $id_contenu_modele = $_POST["id_contenu_modele"][$i];
               mysqli_query($connexion,"INSERT INTO $table_contenu (id_controle,id_contenu_modele,controle,commentaire,visa) VALUES ('$id_comm_apres', '$id_contenu_modele','$controle','$commentaire','$visa')");
                $i++;
                } 
            }



            <form action="ap_modele.php" method="POST">
                                    <label class="bmd-label-floating">Commande</label>
                                      <input type="text"  name="commande" value="<?php echo $_POST['commande'] ?>">
                                    <label class="bmd-label-floating">VISA</label>
                                      <input type="text"  name="visa" value="<?php echo $_POST['visa'] ?>">
                                    <label class="bmd-label-floating">Type modéle</label>
                                      <input type="text"  name="modele" value="<?php echo $_POST['modele'] ?>">
             <br><br>
                
                <table  class="table table-bordered table-striped dt-responsive nowrap" name="test">
                                                    <thead class="thead-light">
                                                    <tr >
                                                        <th>Vérification</th>
                                                        <th>Contrôle <br> OUI / NON / NA</th>
                                                        <th>Commentaire</th>
            
                                                    </tr>
                                                    </thead>
                                                    <tbody>
                                                        
            
               <?php               
                       $sql = mysqli_query($connexion, "SELECT id,description FROM contenu_modele WHERE id_modele = ". $id_mod ."");
                                                            
                                 while(($cmd=mysqli_fetch_assoc($sql)) )
                                  { // On lit les entrées une à une grâce à une boucle
                                      echo '<tr> ';
                                      echo '<form action="ap_modele.php" method="POST">';
                                      echo "<th name='description[]'>" . $cmd["description"] . "</th>";
                                      
                                      echo '<th name="controle[]" class="switchery-demo">
                                      <input type="checkbox"  name="controle[]" value="OUI" data-size="small" data-plugin="switchery" data-color="#1bb99a"/>
                                      <input type="checkbox"  name="controle[]" value="NON" data-size="small" data-plugin="switchery" data-color="#ff5d48"/>
                                      <input type="checkbox"  name="controle[]" value="NA" data-size="small" data-plugin="switchery" data-color="#f1b53d"/>
                                      </th>';
                                      echo '<th><input type="text" name="commentaire[]"></th>';
                                     echo "<th><input type='hidden' name='id_contenu_modele[]'>" . $cmd["id"] . "</th>";
                                     echo '<th><button type="submit" name="validation"></button>';
                                     echo '</form>';
                                     echo '</tr> ';
                                                       
                                                 }
                        
              ?>
            
                                                   
                                        
                                                </tbody>
                </table>        
            
            <div class="button-list">
            <button type="submit" name="validation" class="btn btn-block btn-dark">Valider</button>                                 
            </div>               
            </form>



            -
            Edité par Nerooz 22 mai 2019 à 16:33:36

            • Partager sur Facebook
            • Partager sur Twitter

            Cdt,

            Romain.P

              22 mai 2019 à 16:06:05

              Se baser sur le nom d'un submit et donner le même nom a plusieurs d'entre eux, ce n'est pas la bonne pratique, normal que tu aies des problèmes.

              De plus que tu donnes des noms à tes éléments du formulaire des noms sous forme de tableau, alors que tu n'as qu'un seul enregistrement dans le formulaire, c'est totalement inutile et source d'ennuis.

              En plus de ça, dans ta dernière condition, tu utilises des variables qui ne sont pas définies, tel que name_array.

              Il y a aussi le count($_POST['$commentaire']), tu es sûr d'avoir un index dans tes données postées qui se nomme $commentaire ?

              • 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.

                22 mai 2019 à 16:26:27

                J'ai modifié entre temps ,oui cela générer d'autres erreurs, j'ai édité mon dernier post.

                Il y a aussi le count($_POST['$commentaire']), tu es sûr d'avoir un index dans tes données postées qui se nomme $commentaire ?

                J'ai trouvé ça sur : https://stackoverflow.com/questions/18156505/insert-multiple-fields-using-foreach-loop

                Par count($_post['commentaire'] , il décompte le nombre de $commentaire dans le tableau qui correspond pour moi à :

                  echo '<th><input type="text" name="commentaire[]"></th>';

                dans mon tableau ?

                Je suis d'accord pour le double "submit" mais j'ai cru comprendre par ton précédent post qu'il fallait que j'en rajoute un dans ma boucle.

                -
                Edité par Nerooz 22 mai 2019 à 16:29:13

                • Partager sur Facebook
                • Partager sur Twitter

                Cdt,

                Romain.P

                  22 mai 2019 à 16:36:42

                  J'ai trouvé ça sur : https://stackoverflow.com/questions/18156505/insert-multiple-fields-using-foreach-loop

                  Sauf que la notation du nom sous forme de tableau n'est à utiliser que quand il y a plusieurs enregistrements de ta table dans le formulaire qui sera soumis, ce qui n'est pas le cas dans ton formulaire qui est dans la boucle while.

                  Par count($_post['commentaire'])

                  Non, tu avais count($_post['$commentaire']) et non count($_post['commentaire']) dans ta condition.

                  Je suis d'accord pour le double "submit" mais j'ai cru comprendre par ton précédent post qu'il fallait que j'en rajoute un dans ma boucle.

                  Oui, mais tu ne dois pas donner le même nom au submit du formulaire qui se situ dans la boucle while que l'autre, d'ailleurs, l'autre formulaire ne devrait pas englober celui qui est dans la boucle, tu devrais le fermer avant.

                  -
                  Edité par Lartak 22 mai 2019 à 16:37:42

                  • 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.

                    22 mai 2019 à 16:58:31

                    D'accord merci pour les précisions

                    Donc techniquement si je fait ça c'est correct ?

                    <form action="ap_modele.php" method="POST">
                        <label class="bmd-label-floating">Commande</label>
                        <input type="text"  name="commande" value="<?php echo $_POST['commande'] ?>">
                        <label class="bmd-label-floating">VISA</label>
                        <input type="text"  name="visa" value="<?php echo $_POST['visa'] ?>">
                        <label class="bmd-label-floating">Type modéle</label>
                        <input type="text"  name="modele" value="<?php echo $_POST['modele'] ?>">
                     <br><br>
                    <div class="button-list">
                    <button type="submit" name="validation_a" class="btn btn-block btn-dark">Valider</button>                                 
                    </div>               
                    </form>
                    <table  class="table table-bordered table-striped dt-responsive nowrap" name="test">
                         <thead class="thead-light">
                         <tr >
                         <th>Vérification</th>
                         <th>Contrôle <br> OUI / NON / NA</th>
                         <th>Commentaire</th>
                    </tr>
                    </thead>
                     <tbody>
                    <?php               
                       $sql = mysqli_query($connexion, "SELECT id,description FROM contenu_modele WHERE id_modele = ". $id_mod ."");
                                                                    
                        while(($cmd=mysqli_fetch_assoc($sql)) )
                        { // On lit les entrées une à une grâce à une boucle
                        
                         echo '<tr> ';
                         echo '<form action="ap_modele.php" method="POST"> ';
                         echo "<th name='description[]'>" . $cmd["description"] . "</th>";   
                         echo '<th name="controle[]" class="switchery-demo">
                         <input type="checkbox"  name="controle[]" value="OUI" data-size="small" data-plugin="switchery" data-color="#1bb99a"/>
                         <input type="checkbox"  name="controle[]" value="NON" data-size="small" data-plugin="switchery" data-color="#ff5d48"/>
                         <input type="checkbox"  name="controle[]" value="NA" data-size="small" data-plugin="switchery" data-color="#f1b53d"/>
                         </th>';
                         echo '<th><input type="text" name="commentaire[]"></th>';
                         echo "<input type='hidden' name='id_contenu_modele[]' value=" . $cmd["id"] . ">";
                         echo '<button type="submit" name="validation_b" class="btn btn-block btn-dark">Valider</button>  ';
                         echo '</form> ';
                         echo '</tr> ';  
                        }
                                
                    ?>
                    </tbody>
                    </table>

                    Cependant je ne veut qu'un bouton de validation pour l'utilisateur, donc comment envoyer toutes les données et pas seulement un morceau à l'envoi si je n'ai pas les deux même "name="validation"?

                    <?php
                    #ap_modele.php
                    
                    if(isset($_POST["validation"])) 
                    {
                       $commande = mysqli_real_escape_string($connexion, $_POST["commande"]);
                       $visa = mysqli_real_escape_string($connexion, $_POST["visa"]);
                       $modele = mysqli_real_escape_string($connexion, $_POST["modele"]);
                            
                    $id_modele = mysqli_query($connexion, "SELECT id FROM modele WHERE nom ='" .$modele. "'");
                    $id_modele = mysqli_fetch_assoc($id_modele);
                    $id_mod = $id_modele["id"];
                        
                        if ($id_mod == 1) {
                            $table_modele = "controle_electrique";
                            $table_contenu = "contenu_controle_electrique";
                        }
                        elseif ($id_mod == 2) {
                            $table_modele = "rapport_test";
                            $table_contenu = "contenu_rapport_test";
                        }
                        elseif ($id_mod == 3) {
                            $table_modele = "controle_qualite";
                            $table_contenu = "contenu_controle_qualite";
                        }
                        
                    $id_commande_avant = mysqli_query($connexion, "SELECT id FROM $table_modele WHERE id_commande ='" .$commande. "' AND id_modele ='".$id_mod."' ");
                    $id_visa = mysqli_query($connexion, "SELECT id FROM utilisateur WHERE nom ='" .$visa. "'");
                        
                    $id_commande_avant = mysqli_fetch_assoc($id_commande_avant);
                    $id_comm_avant = $id_commande_avant["id"];
                     
                    $id_visa = mysqli_fetch_assoc($id_visa);
                    $id_vis = $id_visa["id"];
                    
                    if (empty($id_comm_avant)) {
                    $temp="Nouvelle commande";
                    $add_commande = mysqli_query($connexion, "INSERT INTO $table_modele (id_commande,id_modele) VALUES ('$commande','$id_mod')");
                    }
                    else {
                    $temp="Commande existante";
                    $update_commande = mysqli_query($connexion, "UPDATE $table_modele SET id_commande = '".$commande."' , id_modele ='".$id_mod."'  ");   
                    }
                        
                    $id_commande_apres= mysqli_query($connexion, "SELECT id FROM $table_modele WHERE id_commande ='" .$commande. "' AND id_modele ='".$id_mod."' ");
                    $id_commande_apres = mysqli_fetch_assoc($id_commande_apres);
                    $id_comm_apres = $id_commande_apres["id"];
                        
                       $i = 0;
                        foreach ($_POST as $val) { 
                                $controle = $_POST["controle"][$i];
                                $commentaire = $_POST["commentaire"][$i];
                                $id_contenu_modele = $_POST["id_contenu_modele"][$i];
                       mysqli_query($connexion,"INSERT INTO $table_contenu (id_controle,id_contenu_modele,controle,commentaire,visa) VALUES ('$id_comm_apres', '$id_contenu_modele','$controle','$commentaire','$visa')");
                        $i++;
                        } 
                    }
                    ?>


                    Je ne récupère toujours pas l'ensemble des variables, a cause du double form je reçois l'un ou l'autre (normal)



                    -
                    Edité par Nerooz 22 mai 2019 à 17:12:33

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Cdt,

                    Romain.P

                      22 mai 2019 à 17:25:54

                      Si tu veux qu'il n'y ait qu'un seul formulaire, il ne faut pas créer de formulaire dans ta boucle while.

                      Ce que tu fais pourtant dès le début.

                      • 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.

                        22 mai 2019 à 17:31:48

                        D'accord , en remettant un seul form ça marche il ne me reste que quelque parametre à changer mais merci beaucoup !! Lartak  

                        J'aurais surement d'autre problèmes demain ^^ 

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Cdt,

                        Romain.P

                          23 mai 2019 à 9:37:23

                          Bonjour ,

                          Je viens avec une nouvelle erreur 

                           


                          <?php
                          
                          
                          if((isset($_POST["validation"]))) 
                          {
                             $commande = mysqli_real_escape_string($connexion, $_POST["commande"]);
                             $visa = mysqli_real_escape_string($connexion, $_POST["visa"]);
                             $modele = mysqli_real_escape_string($connexion, $_POST["modele"]);
                                  
                          $id_modele = mysqli_query($connexion, "SELECT id FROM modele WHERE nom ='" .$modele. "'");
                          $id_modele = mysqli_fetch_assoc($id_modele);
                          $id_mod = $id_modele["id"];
                              
                              if ($id_mod == 1) {
                                  $table_modele = "controle_electrique";
                                  $table_contenu = "contenu_controle_electrique";
                              }
                              elseif ($id_mod == 2) {
                                  $table_modele = "rapport_test";
                                  $table_contenu = "contenu_rapport_test";
                              }
                              elseif ($id_mod == 3) {
                                  $table_modele = "controle_qualite";
                                  $table_contenu = "contenu_controle_qualite";
                              }
                          $decompte = mysqli_query($connexion, "SELECT COUNT(id) FROM contenu_modele WHERE id_modele ='" .$id_mod. "'");
                          $decompte = mysqli_fetch_assoc($decompte);
                              
                          $id_commande_avant = mysqli_query($connexion, "SELECT id FROM $table_modele WHERE id_commande ='" .$commande. "' AND id_modele ='".$id_mod."' ");
                          $id_visa = mysqli_query($connexion, "SELECT id FROM utilisateur WHERE nom ='" .$visa. "'");
                              
                          $id_commande_avant = mysqli_fetch_assoc($id_commande_avant);
                          $id_comm_avant = $id_commande_avant["id"];
                           
                          $id_visa = mysqli_fetch_assoc($id_visa);
                          $id_vis = $id_visa["id"];
                          
                          if (empty($id_comm_avant)) {
                          $temp="Nouvelle commande";
                          $add_commande = mysqli_query($connexion, "INSERT INTO $table_modele (id_commande,id_modele) VALUES ('$commande','$id_mod')");
                          }
                          else {
                          $temp="Commande existante";
                          $update_commande = mysqli_query($connexion, "UPDATE $table_modele SET id_commande = '".$commande."' , id_modele ='".$id_mod."'  ");   
                          }
                              
                          $id_commande_apres= mysqli_query($connexion, "SELECT id FROM $table_modele WHERE id_commande ='" .$commande. "' AND id_modele ='".$id_mod."' ");
                          $id_commande_apres = mysqli_fetch_assoc($id_commande_apres);
                          $id_comm_apres = $id_commande_apres["id"];
                              
                            
                             foreach($_POST['controle'] as $val) { 
                                 
                                      
                                 if ((empty($_POST["controle"])) AND (empty($_POST["commentaire"]))){
                                     $i++;
                                 }
                                else {
                                      $controle = $_POST["controle"];
                                      $commentaire = $_POST["commentaire"];
                                #Ligne84      $description = mysqli_real_escape_string($connexion, $_POST["description"]);
                                      $id_contenu_modele = mysqli_query($connexion,"SELECT id FROM contenu_modele WHERE description ='". $description ."'");   
                                      $id_contenu_modele = mysqli_fetch_assoc($id_contenu_modele);
                                      $id_cont_mod = $id_contenu_modele["id"];
                                      $verif = mysqli_query($connexion,"SELECT id FROM $table_contenu WHERE id_contenu_modele ='". $id_cont_mod ."' AND id_controle = '". $id_comm_apres ."' ");    
                                      $verif = mysqli_fetch_assoc($verif);
                                      $verif_final = $verif["id"];
                                          if (empty($verif_final)) {
                                 #Ligne92         $insert_into = mysqli_query($connexion,"INSERT INTO $table_contenu (id_controle,id_contenu_modele,controle,commentaire,visa) VALUES ('$id_comm_apres', '$id_cont_mod','$controle','$commentaire','$visa')");
                                              $tempo="Nouvelle vérification";
                                              
                              
                                              }
                                              else 
                                              {   
                                           $update = mysqli_query($connexion,"UPDATE $table_contenu SET controle='$controle', commentaire='$commentaire', visa='$visa' WHERE id = '". $verif_final ."' ");
                                              $tempo="Update vérification";
                                                  
                              
                                              }
                                      }
                                      
                                     
                                     
                              } 
                          }
                          
                          
                          echo "<p >========RECAP========</p>";
                          echo "<p >COMMANDE : $commande </p>";
                          echo "<p >INFO : $temp </p>";
                          echo "<p >ID_COMMANDE AVANT : $id_comm_avant</p>";
                          echo "<p >ID_COMMANDE APRES : $id_comm_apres</p>";
                          echo "<p >VISA : $visa</p>";
                          echo "<p >ID_VISA : $id_vis</p>";
                          echo "<p>TABLE : $table_modele</p>";
                          echo "<p >CONTENU_TABLE : $table_contenu</p>";
                                                              
                             ?>
                          <form action="ap_modele.php" method="POST">
                              <label class="bmd-label-floating">Commande</label>
                              <input type="text"  name="commande" value="<?php echo $_POST['commande'] ?>">
                              <label class="bmd-label-floating">VISA</label>
                              <input type="text"  name="visa" value="<?php echo $_POST['visa'] ?>">
                              <label class="bmd-label-floating">Type modéle</label>
                              <input type="text"  name="modele" value="<?php echo $_POST['modele'] ?>">
                           <br><br>
                          
                          <table  class="table table-bordered table-striped dt-responsive nowrap" name="test">
                               <thead class="thead-light">
                               <tr >
                               <th>Vérification</th>
                               <th>Contrôle <br> OUI / NON / NA</th>
                               <th>Commentaire</th>
                          </tr>
                          </thead>
                           <tbody>
                          <?php               
                             $sql = mysqli_query($connexion, "SELECT id,description FROM contenu_modele WHERE id_modele = ". $id_mod ."");
                                                                          
                              while(($cmd=mysqli_fetch_assoc($sql)) )
                              { // On lit les entrées une à une grâce à une boucle
                              
                               echo '<tr> ';
                               echo "<th>" . $cmd["description"] . "</th>"; 
                               echo '<th class="switchery-demo">
                               <input type="checkbox"  name="controle[]" value="OUI" data-size="small" data-plugin="switchery" data-color="#1bb99a"/>
                               <input type="checkbox"  name="controle[]" value="NON" data-size="small" data-plugin="switchery" data-color="#ff5d48"/>
                               <input type="checkbox"  name="controle[]" value="NA" data-size="small" data-plugin="switchery" data-color="#f1b53d"/>
                               </th>';
                               echo '<th><input type="text" name="commentaire[]"></th>';
                               echo "<input type='hidden' name='id_contenu_modele[]' value=" . $cmd["id"] . ">";
                               echo "<input type='hidden' name='description[]' value=" . $cmd["description"] . ">";
                               echo '</tr> ';  
                              }
                                      
                          ?>
                          </tbody>
                          </table>        
                          <div class="button-list">
                          <button type="submit" name="validation" class="btn btn-block btn-dark">Valider</button>                                 
                          </div>               
                          </form>




                          -
                          Edité par Nerooz 23 mai 2019 à 11:36:08

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Cdt,

                          Romain.P

                          Récupérer les résultats d'un tableau

                          × 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