Bonjour,
Je cale depuis plusieurs jours sur un problème d'insertion de ma table HTML vers ma BDD MySql.
L'idée étant d'enregistrer une ligne que si la quantité est renseigné.
Pourriez vous me guider vers la solution.
Voici mon code:
Pour la partie INSERT INTO, c'est ici que j'ai mon soucis car seule la dernière ligne du tableau s’insère alors que la quantité est à 0
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 <div class="tableauCmd" id="main"> <section> <table id="tableau"> <thead> <tr> <th width=20%>Désignation</th> <th width=20%>Code article</th> <th width=40%>Couleur</th> <th width=20%>Code couleur</th> <th width=60%>U.V.C....................................</th> <th width=30%>Taille</th> <th width=30%>Quantité</th> </tr> </thead> <tbody> <?php try { $bdd = new PDO('mysql:host=localhost;dbname=xxxx;charset=utf8', '', ''); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } $query = $bdd->prepare('SELECT ART_CODE,ART_DESIGN,COL_LIBELLE,COL_CODE,ART_UVC,ART_TAILLE FROM ARTICLES,COLORS WHERE ART_COL=COL_CODE AND ART_CODE="' . $_POST['article'] . '" ORDER BY ART_UVC'); $query->execute(); while ($data = $query->fetch()) { ?> <tr> <div> <td><input type="text" class="col" name="designation" value="<?php echo $data['ART_DESIGN']; ?>"></td> <td><input type="text" class="col" name="codearticle" value="<?php echo $data['ART_CODE']; ?>"></td> <td><input type="text" class="col" name="colorislibelle" value="<?php echo $data['COL_LIBELLE']; ?>"></td> <td><input type="text" class="col" name="coloriscode" value="<?php echo $data['COL_CODE']; ?>"></td> <td><input type="text" class="col" name="uvc" value="<?php echo $data['ART_UVC']; ?>"></td> <td><input type="text" class="col" name="taillearticle" value="<?php echo $data['ART_TAILLE']; ?>"></td> <td><input type="text" class="col" name="qty"></td> </div> </tr> <?php } ?> </tbody> </table>
Je sais que le soucis provient des conditions de la requête, car j'enregistre que la dernière ligne alors que la quantité est à O.
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 while(isset($_POST['codearticle'][++$i])) if(isset($_POST["codearticle"])) { if($_POST["qty"] != 0) { { { <?php $servname = "localhost"; $dbname = "simag_prod"; $user = "root"; $pass = "root"; try{ $dbco = new PDO("mysql:host=$servname;dbname=$dbname", $user, $pass); $dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $num = $_POST['CmdNum']; $codeart = $_POST['codearticle']; $artlibelle = $_POST['designation']; $color = $_POST['colorislibelle']; $taille = $_POST['taillearticle']; $uvc = $_POST['uvc']; $qty = $_POST['qty']; $create = date('y-m-d h:i:s'); //$sth appartient à la classe PDOStatement $sth = $dbco->prepare(" INSERT INTO CMD_LIGNE(LIG_NUM_CMD,LIG_ART_CODE,LIG_ART_LIBELLE,LIG_ART_COLOR,LIG_ART_TAILLE,LIG_UVC, LIG_ART_QTY,LIG_DATE_CREATE) VALUES (:numcmd, :codearticle, :artlibelle, :artcolor, :arttaille, :uvc, :quantite, :creation) "); $sth->execute(array( ':numcmd' => $num, ':codearticle' => $codeart, ':artlibelle' => $artlibelle, ':artcolor' => $color, ':arttaille' => $taille, ':uvc' => $uvc, ':quantite' => $qty, ':creation' => $create)); echo "Entrée ajoutée dans la table"; } catch(PDOException $e){ echo "Erreur : " . $e->getMessage(); } ?>
Je viens du monde de windev et débutant dans ce monde ci, alors désolé pour l'ignorance.
Encore merci pour votre aide
Partager