Bonsoir à tous, voici mon souci depuis 3 jours:

J'ai une page pour modifier des éléments dans un tableau(catégorie, nom du produit et quantité). Afin de parcourir le tableau j'ai utilisé la boucle do-while pour executer la requette sur chaque champ mais la modication ne prend effet que sur le premier champ cest à dire "categorie1".

voici le 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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<form method="post" action="UpdateFiche.php?idFiche=<?php echo $idFiche ?>">
                        <tr>
                            <label>Date : &nbsp;<?php echo $fiche['dateFiche']; ?></label>
                        </tr>
                        <br>
                        <tr>
                            <label>Commentaire : &nbsp;</label><input type="text" name = "commentaire" value = "<?php echo $fiche['commentaire']; ?>">
                        </tr>
                </div>
 
                    <div class="table-responsive">
                    <div class="table-responsive">
 
  <table class="margetop" id = "productTable" name="tableProduit">
    <thead>
      <tr>
        <th>Catégorie</th>
        <th>Désignation</th>
        <th>Quantité</th>
        <th style="width: 15%;">Destination</th>
      </tr>
    </thead>
    <tbody>
      <?php
        $count = 0;
        $nombreProduit = 0;
        while ($produit = $resultatp->fetch()) {
            $nombreProduit++;
          $count++;
          //$idCategorie=$produit['idCategorie'];
      ?>
        <tr class="product-row">
          <td>
          <select name = "categorie<?php echo $count; ?>">
              <?php
                        $resultatC = $pdo->query("select * from Categorie");
                        while($categorie = $resultatC->fetch()){ ?>
                            <option value="<?php echo $categorie['idCategorie']; ?>"
                               <?php if($categorie['nomCategorie']===$produit['nomCategorie']) echo "selected"; ?>>
                                <?php echo $categorie['nomCategorie'] ?>
                            </option>
                                <?php } ?>
                        </select>
        </td>
          <td><input type="text" name = "produit<?php echo $count; ?>" value ="<?php echo $produit['nomProduit']; ?>"></td>
          <td><input type="text" name = "quantite<?php echo $count; ?>" value ="<?php echo $produit['quantite']; ?>"></td>
          <?php if ($resultatp->rowCount() == 1) { ?>
            <td><select name="destination">
              <?php
                        $resultatD = $pdo->query("select * from Direction");
                        while($direction = $resultatD->fetch()){ ?>
                            <option name = "destination" value="<?php echo $direction['nomDirection']; ?>"
                               <?php if($direction['nomDirection']===$fiche['destination']) echo "selected"; ?>>
                                <?php echo $direction['nomDirection'] ?>
                            </option>
                                <?php } ?>
                        </select></td>
          <?php } else if ($resultatp->rowCount() > 1) {
            if ($count == 1) { ?>
              <td rowspan="<?php echo $resultatp->rowCount(); ?>">
              <select name="destination">
              <?php
                        $resultatD = $pdo->query("select * from Direction");
                        while($direction = $resultatD->fetch()){ ?>
                            <option name = "destination" value="<?php echo $direction['nomDirection']; ?>"
                               <?php if($direction['nomDirection']===$fiche['destination']) echo "selected"; ?>>
                                <?php echo $direction['nomDirection'] ?>
                            </option>
                                <?php } ?>
                        </select>
                    </td>
            <?php }
 
          } ?>
        </tr>
      <?php }?>
      <input type = "hidden" name = "nombreProduit" value="<?php $count; ?>">
    </tbody>
 
                    </table>
                    <div class = "submit">
                <button type="button" id="addButton">Ajouter une ligne <span class="glyphicon glyphicon-plus" style="color:green"></span> </button>
                &nbsp;&nbsp;&nbsp;
                <button type="button" id="removeButton">Supprimer la dernière ligne <span class="glyphicon glyphicon-minus" style="color:red"></span> </button>
            </div>
 
                    <div class="signature-container">
  <div class="signature">
    <div>
      <label>Le chef de service <br> demandeur</label><br><br>
    </div>
    <div>
      <label class="signature-adjoint">Directeur général adjoint &nbsp;<br>
        <select name="dga" required>
 
                    <option value="technique" <?php if($fiche['dga']=="technique"){ echo "selected";}?>>
                                Technique
                    </option>
 
 
 
                    <option value="chargé des operations"<?php if($fiche['dga']=="chargé des operations") echo "selected";?>>
                               Chargé des opérations
                    </option>
 
 
                </select></label><br><br>
 
    </div>
    <div>
      <label>Directeur <br>général</label><br><br>
    </div>
  </div>
</div>
 
 
                </div>
                <?php
            } else {
                echo "Erreur : la fiche demandée n'existe pas.";
            }
        ?>
        <div class="submit">
            <input type="submit"  name = "submit" class="btn btn-success" value="Enregistrer les modifications">
            </form>
Voici la boucle:
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
38
39
40
41
42
43
44
 
$i=1;
 
 
 
 
    do{
 
    if(isset($_POST['produit'.$i])){
        $nombreProduits = $_POST['nombreProduit'];
    echo $nombreProduits;
            $produit = $_POST['produit'.$i];
            $quantite = $_POST['quantite'.$i];
            $idCategorie = $_POST['categorie'.$i];
            $requetep = "select * from produit where idFiche = $idFiche";
            $resultatp = $pdo->query($requetep);
            $nomProduit = $resultatp -> fetch();
            $requeteProduit = "UPDATE Produit AS p
                                   /* inner join Categorie as c on c.idCategorie = p.idCategorie
                                    inner join fiche as f on p.idFiche = f.idFiche*/
                                    set p.idCategorie = :idCategorie
                                   /*p.nomProduit = :produit,
                                    p.quantite = :quantite*/
                                    where p.idFiche = :idFiche
                                    and p.idProduit = :produit
                                    ";
 
        //$resultatp = $pdo->query($requeteProduit);
        $stmtProduit = $pdo->prepare($requeteProduit);
        $stmtProduit->execute(array(
        ':idCategorie' => $idCategorie,
 
        ':idFiche' => $idFiche,
        ':produit' => $produit,
 
    ));
}
 
 
        echo $nombreProduits;
    var_dump($nombreProduits);
 
 
    }while($i<=$nombreProduits);