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:
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
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 : <?php echo $fiche['dateFiche']; ?></label> </tr> <br> <tr> <label>Commentaire : </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> <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 <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>
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);
Partager