IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

INSERT avec tableau HTML


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 975
    Points : 766
    Points
    766
    Par défaut INSERT avec tableau HTML
    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:

    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>
    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
    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 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.
    Je viens du monde de windev et débutant dans ce monde ci, alors désolé pour l'ignorance.
    Encore merci pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 112
    Points : 16 646
    Points
    16 646
    Par défaut
    Salut

    En déplaçant <?php avant while(isset($_POST['.... cela donne quoi ?

  3. #3
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 975
    Points : 766
    Points
    766
    Par défaut
    Bonjour,

    Rien de plus, j'ai pour autant modifier le code mais j'enregistre toutes les lignes, y compris celles ou la quantité est à 0

    Code php : 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
                //$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)
                    ");
                    var_dump($sth);
     
                    if($_POST["qty"] != 0) {
     
                    $codeart = $_POST['codearticle'];
                    for ($i = 0; $i < $codeart; $i++) {
     
                    $num = $_POST['CmdNum'];
                    $codeart = $_POST['codearticle'][$i];
                    $artlibelle = $_POST['designation'][$i];
                    $color = $_POST['colorislibelle'][$i];
                    $taille = $_POST['taillearticle'][$i];
                    $uvc = $_POST['uvc'][$i];
                    $qty = $_POST['qty'][$i];
                    $create = date('y-m-d h:i:s');
     
                    $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 ne comprends pas où est mon erreur

  4. #4
    Membre éclairé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 381
    Points : 764
    Points
    764
    Par défaut
    Que donne un var_dump($_POST); au début de ton script de traitement ?
    Toutes les données post attendus sont bien reçues ?

    L'attribut name de tes inputs devraient surement être sous la forme d'un tableau <input type="text" class="col" name="qty[]"> afin que tous les inputs soient transmis et pas seulement la dernière ligne de ton tableau.

  5. #5
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 975
    Points : 766
    Points
    766
    Par défaut
    Bonjour,

    Oui, en effet, toutes les données s'affichent bien dans le var_dump et en effet, les input sont bien déclarés comme vous le stipulé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        <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>
    et la requete INSERT:

    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
                //$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)
                    ");
                    var_dump($sth);
     
                    $codeart = $_POST['codearticle'];
                    for ($i = 0; $i < $codeart; $i++) {
                    $var = $_POST['qty'];
                    var_dump($var);
                    if($var != 0) {
     
                    $num = $_POST['CmdNum'];
                    $codeart = $_POST['codearticle'][$i];
                    $artlibelle = $_POST['designation'][$i];
                    $color = $_POST['colorislibelle'][$i];
                    $taille = $_POST['taillearticle'][$i];
                    $uvc = $_POST['uvc'][$i];
                    $qty = $_POST['qty'][$i];
                    $create = date('y-m-d h:i:s');
     
                    $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();
            }
    Et comme dit, j'enregistre même les lignes dont la quantité est à 0, alors que je cherche uniquement celles dont la quantité est > 0

    Merci pour votre aide

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    et en effet, les input sont bien déclarés comme vous le stipulé.
    C'est pas ce que tu montrais, pour rappel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        <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>
    Ici pas de [].

    Et comme dit, j'enregistre même les lignes dont la quantité est à 0, alors que je cherche uniquement celles dont la quantité est > 0
    Il n'y a pas de condition ici empêchant cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                   $qty = $_POST['qty'][$i];
                    $create = date('y-m-d h:i:s');
     
                    $sth->execute(array(
                        ':numcmd' => $num,
                        ':codearticle' => $codeart,
                        ':artlibelle' => $artlibelle,
                        ':artcolor' => $color,
                        ':arttaille' => $taille,
                        ':uvc' => $uvc,
                        ':quantite' => $qty,
                        ':creation' => $create
                    ));
    Modifie en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $qty = $_POST['qty'][$i];
    $create = date('y-m-d h:i:s');
     
    if ($qty == 0) {
        continue; // Tour de boucle suivant
    }
     
    $sth->execute([...]);

  7. #7
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 975
    Points : 766
    Points
    766
    Par défaut
    Bonjour,

    En modifiant ainsi

    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
                //$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) ");
     
     
                $codeart = $_POST['codearticle'];
                for ($i = 0; $i < $codeart; $i++) {
     
     
                        $num = $_POST['CmdNum'];
                        $codeart = $_POST['codearticle'][$i];
                        $artlibelle = $_POST['designation'][$i];
                        $color = $_POST['colorislibelle'][$i];
                        $taille = $_POST['taillearticle'][$i];
                        $uvc = $_POST['uvc'][$i];
                        $qty = $_POST['qty'][$i];
                        $create = date('y-m-d h:i:s');
     
                        if ($qty == 0) {
                            continue; // Tour de boucle suivant
     
                        $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();
            }
    J'obtiens:

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\ztest.php on line 23

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\ztest.php on line 24

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\ztest.php on line 25

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\ztest.php on line 26

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\ztest.php on line 27

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\ztest.php on line 28
    Par avance merci pour votre aide, j'avoue que je nage complètement

  8. #8
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 975
    Points : 766
    Points
    766
    Par défaut
    Re,

    J'ai finis par trouvé comment enregistrer les lignes avec des quantités en modifiant la condition:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($qty !== 0 AND $qty !=NULL ) {
    mais je ne comprends pas ces warning qui continuent:

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\ztest.php on line 23

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\ztest.php on line 24

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\ztest.php on line 25

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\ztest.php on line 26

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\ztest.php on line 27

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\ztest.php on line 28

  9. #9
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    On ne sait pas exactement à quoi correspondent ces lignes.

    Mais je suppose que le problème vient d'ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                    for ($i = 0; $i < $codeart; $i++) {
                    $var = $_POST['qty'];
                    var_dump($var);
                    if($var != 0) {
     
                    $num = $_POST['CmdNum']; // ICI
                    $codeart = $_POST['codearticle'][$i]; // ET LA
                    // ...
    Cette manière de procéder est fragile.

    Fais un echo '<pre>', print_r($_POST), '</pre>'; et colle le résultat ici qu'on voit quelle est la meilleure manière d'itérer sur ton formulaire.

  10. #10
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 975
    Points : 766
    Points
    766
    Par défaut
    Bonjour,

    Merci pour ton aide, voici

    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
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    Array
    (
        [CmdNum] => 3310-00000102
        [article] => 
        [artdesign] => 
        [articlecode] => ART-J001
        [CliNom] => CRULAI MOTORS
        [clicode] => CRULAI MOTORS
        [create] => 2024-04-04
        [delivery] => 2024-04-04
        [echeance] => 
        [banque] => 
        [comments] => 
        [designation] => Array
            (
                [0] => JUPE CUIR
                [1] => JUPE CUIR
                [2] => JUPE CUIR
                [3] => JUPE CUIR
                [4] => JUPE CUIR
                [5] => JUPE CUIR
                [6] => JUPE CUIR
                [7] => JUPE CUIR
                [8] => JUPE CUIR
                [9] => JUPE CUIR
                [10] => JUPE CUIR
                [11] => JUPE CUIR
                [12] => JUPE CUIR
                [13] => JUPE CUIR
                [14] => JUPE CUIR
            )
     
        [codearticle] => Array
            (
                [0] => ART-J001
                [1] => ART-J001
                [2] => ART-J001
                [3] => ART-J001
                [4] => ART-J001
                [5] => ART-J001
                [6] => ART-J001
                [7] => ART-J001
                [8] => ART-J001
                [9] => ART-J001
                [10] => ART-J001
                [11] => ART-J001
                [12] => ART-J001
                [13] => ART-J001
                [14] => ART-J001
            )
     
        [colorislibelle] => Array
            (
                [0] => ORANGE
                [1] => ORANGE
                [2] => ORANGE
                [3] => ORANGE
                [4] => ORANGE
                [5] => GRIS FONCE
                [6] => GRIS FONCE
                [7] => GRIS FONCE
                [8] => GRIS FONCE
                [9] => GRIS FONCE
                [10] => DARK GRAY
                [11] => DARK GRAY
                [12] => DARK GRAY
                [13] => DARK GRAY
                [14] => DARK GRAY
            )
     
        [coloriscode] => Array
            (
                [0] => 165C 
                [1] => 165C 
                [2] => 165C 
                [3] => 165C 
                [4] => 165C 
                [5] => 431C
                [6] => 431C
                [7] => 431C
                [8] => 431C
                [9] => 431C
                [10] => 432C
                [11] => 432C
                [12] => 432C
                [13] => 432C
                [14] => 432C
            )
     
        [uvc] => Array
            (
                [0] => ART-J001165C 36
                [1] => ART-J001165C 38
                [2] => ART-J001165C 40
                [3] => ART-J001165C 42
                [4] => ART-J001165C 44
                [5] => ART-J001431C36
                [6] => ART-J001431C38
                [7] => ART-J001431C40
                [8] => ART-J001431C42
                [9] => ART-J001431C44
                [10] => ART-J001432C36
                [11] => ART-J001432C38
                [12] => ART-J001432C40
                [13] => ART-J001432C42
                [14] => ART-J001432C44
            )
     
        [taillearticle] => Array
            (
                [0] => 36
                [1] => 38
                [2] => 40
                [3] => 42
                [4] => 44
                [5] => 36
                [6] => 38
                [7] => 40
                [8] => 42
                [9] => 44
                [10] => 36
                [11] => 38
                [12] => 40
                [13] => 42
                [14] => 44
            )
     
        [qty] => Array
            (
                [0] => 
                [1] => 
                [2] => 2
                [3] => 
                [4] => 
                [5] => 
                [6] => 3
                [7] => 
                [8] => 
                [9] => 
                [10] => 
                [11] => 
                [12] => 
                [13] => 
                [14] => 
            )
     
        [Envoi] => Enregistrer
    )
    1
     
    Array
    (
        [CmdNum] => 3310-00000102
        [article] => 
        [artdesign] => 
        [articlecode] => ART-J001
        [CliNom] => CRULAI MOTORS
        [clicode] => CRULAI MOTORS
        [create] => 2024-04-04
        [delivery] => 2024-04-04
        [echeance] => 
        [banque] => 
        [comments] => 
        [designation] => Array
            (
                [0] => JUPE CUIR
                [1] => JUPE CUIR
                [2] => JUPE CUIR
                [3] => JUPE CUIR
                [4] => JUPE CUIR
                [5] => JUPE CUIR
                [6] => JUPE CUIR
                [7] => JUPE CUIR
                [8] => JUPE CUIR
                [9] => JUPE CUIR
                [10] => JUPE CUIR
                [11] => JUPE CUIR
                [12] => JUPE CUIR
                [13] => JUPE CUIR
                [14] => JUPE CUIR
            )
     
        [codearticle] => Array
            (
                [0] => ART-J001
                [1] => ART-J001
                [2] => ART-J001
                [3] => ART-J001
                [4] => ART-J001
                [5] => ART-J001
                [6] => ART-J001
                [7] => ART-J001
                [8] => ART-J001
                [9] => ART-J001
                [10] => ART-J001
                [11] => ART-J001
                [12] => ART-J001
                [13] => ART-J001
                [14] => ART-J001
            )
     
        [colorislibelle] => Array
            (
                [0] => ORANGE
                [1] => ORANGE
                [2] => ORANGE
                [3] => ORANGE
                [4] => ORANGE
                [5] => GRIS FONCE
                [6] => GRIS FONCE
                [7] => GRIS FONCE
                [8] => GRIS FONCE
                [9] => GRIS FONCE
                [10] => DARK GRAY
                [11] => DARK GRAY
                [12] => DARK GRAY
                [13] => DARK GRAY
                [14] => DARK GRAY
            )
     
        [coloriscode] => Array
            (
                [0] => 165C 
                [1] => 165C 
                [2] => 165C 
                [3] => 165C 
                [4] => 165C 
                [5] => 431C
                [6] => 431C
                [7] => 431C
                [8] => 431C
                [9] => 431C
                [10] => 432C
                [11] => 432C
                [12] => 432C
                [13] => 432C
                [14] => 432C
            )
     
        [uvc] => Array
            (
                [0] => ART-J001165C 36
                [1] => ART-J001165C 38
                [2] => ART-J001165C 40
                [3] => ART-J001165C 42
                [4] => ART-J001165C 44
                [5] => ART-J001431C36
                [6] => ART-J001431C38
                [7] => ART-J001431C40
                [8] => ART-J001431C42
                [9] => ART-J001431C44
                [10] => ART-J001432C36
                [11] => ART-J001432C38
                [12] => ART-J001432C40
                [13] => ART-J001432C42
                [14] => ART-J001432C44
            )
     
        [taillearticle] => Array
            (
                [0] => 36
                [1] => 38
                [2] => 40
                [3] => 42
                [4] => 44
                [5] => 36
                [6] => 38
                [7] => 40
                [8] => 42
                [9] => 44
                [10] => 36
                [11] => 38
                [12] => 40
                [13] => 42
                [14] => 44
            )
     
        [qty] => Array
            (
                [0] => 
                [1] => 
                [2] => 2
                [3] => 
                [4] => 
                [5] => 
                [6] => 3
                [7] => 
                [8] => 
                [9] => 
                [10] => 
                [11] => 
                [12] => 
                [13] => 
                [14] => 
            )
     
        [Envoi] => Enregistrer
    )
    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\CmdCliInsert.php on line 52

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\CmdCliInsert.php on line 53

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\CmdCliInsert.php on line 54

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\CmdCliInsert.php on line 55

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\CmdCliInsert.php on line 56

    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\CmdCliInsert.php on line 57
    Et voici la partie du code ou je cale car je ne comprends pas pourquoi cela ne s’arrête pas à la ligne 14

    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
    try {
        $dbco = new PDO("mysql:host=$servname;dbname=$dbname", $user, $pass);
        $dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
        //$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) ");
     
        $codeart = $_POST['codearticle'];
        for ($i = 0; $i < $codeart; $i++) {
     
                $num = $_POST['CmdNum'];
                $codeart = $_POST['codearticle'][$i];
                $artlibelle = $_POST['designation'][$i];
                $color = $_POST['colorislibelle'][$i];
                $taille = $_POST['taillearticle'][$i];
                $uvc = $_POST['uvc'][$i];
                $qty = $_POST['qty'][$i];
                $create = date('y-m-d h:i:s');
     
                if ($qty !== 0 AND $qty !=NULL)
                {
     
                $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";
                echo '<pre>', print_r($_POST), '</pre>';
            }
    } 
    } catch (PDOException $e) {
        echo "Erreur : " . $e->getMessage();
    }

  11. #11
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    Cette partie n'a pas trop de sens au vu de ton $_POST :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $codeart = $_POST['codearticle'];
    for ($i = 0; $i < $codeart; $i++) {
    Il faudrait faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $count = $_POST['codearticle']; // Nombre d'articles
    for ($i = 0; $i < $count; $i++) { // 
        $codeart = $_POST['codearticle'][$i];
        $designation = $_POST['designation'][$i];
        // ...
    }
    ----

    Ceci dit, pour ce genre de formulaire, la meilleure structure est àmha :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php for ($i = 0; $i < $article_count; $i++): ?>
        <tr>
            <td><input type="text" name="articles[<?= $i ?>]['codearticle']" value="..."></td>
            <td><input type="text" name="articles[<?= $i ?>]['designation']" value="..."></td>
            ...
        <tr>
    <?php endfor ?>
    Ensuite pour le POST le parcours sera bien plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach ($_POST['articles'] as $article) {
        // $article sera un enregistrement de la forme ['codearticle' => '...', 'designation' => '...', ...]
    }

  12. #12
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 975
    Points : 766
    Points
    766
    Par défaut
    Merci pour ton aide, pour autant cela ne fonctionne pas.

    Avec $count , la requête ne s'arrête pas et insère en continue, et dans le second, $article est indéfini.
    Il me faut juste trouver pourquoi la 15eme ligne est en warning alors qu'elle est bien définie et après un test, j'enregistre bien cette ligne si je lui met une quantité.

    Encore merci

  13. #13
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    Il faut donner le dump de $_POST et le code qui provoquent cela.

    Pourquoi 15 lignes ? Ne complique pas les choses avec autant de lignes et teste avec 3 lignes, ça devrait suffire

  14. #14
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 975
    Points : 766
    Points
    766
    Par défaut
    Bonjour,

    Voilà le dump et l'éternel message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    array(19) { ["CmdNum"]=> string(13) "3310-00000111" ["article"]=> string(0) "" ["artdesign"]=> string(0) "" ["articlecode"]=> string(8) "ART-J001" ["CliNom"]=> string(0) "" ["clicode"]=> string(0) "" ["create"]=> string(10) "2024-04-05" ["delivery"]=> string(10) "2024-04-05" ["echeance"]=> string(0) "" ["banque"]=> string(0) "" ["comments"]=> string(0) "" ["designation"]=> array(15) { [0]=> string(9) "JUPE CUIR" [1]=> string(9) "JUPE CUIR" [2]=> string(9) "JUPE CUIR" [3]=> string(9) "JUPE CUIR" [4]=> string(9) "JUPE CUIR" [5]=> string(9) "JUPE CUIR" [6]=> string(9) "JUPE CUIR" [7]=> string(9) "JUPE CUIR" [8]=> string(9) "JUPE CUIR" [9]=> string(9) "JUPE CUIR" [10]=> string(9) "JUPE CUIR" [11]=> string(9) "JUPE CUIR" [12]=> string(9) "JUPE CUIR" [13]=> string(9) "JUPE CUIR" [14]=> string(9) "JUPE CUIR" } ["codearticle"]=> array(15) { [0]=> string(8) "ART-J001" [1]=> string(8) "ART-J001" [2]=> string(8) "ART-J001" [3]=> string(8) "ART-J001" [4]=> string(8) "ART-J001" [5]=> string(8) "ART-J001" [6]=> string(8) "ART-J001" [7]=> string(8) "ART-J001" [8]=> string(8) "ART-J001" [9]=> string(8) "ART-J001" [10]=> string(8) "ART-J001" [11]=> string(8) "ART-J001" [12]=> string(8) "ART-J001" [13]=> string(8) "ART-J001" [14]=> string(8) "ART-J001" } ["colorislibelle"]=> array(15) { [0]=> string(6) "ORANGE" [1]=> string(6) "ORANGE" [2]=> string(6) "ORANGE" [3]=> string(6) "ORANGE" [4]=> string(6) "ORANGE" [5]=> string(10) "GRIS FONCE" [6]=> string(10) "GRIS FONCE" [7]=> string(10) "GRIS FONCE" [8]=> string(10) "GRIS FONCE" [9]=> string(10) "GRIS FONCE" [10]=> string(9) "DARK GRAY" [11]=> string(9) "DARK GRAY" [12]=> string(9) "DARK GRAY" [13]=> string(9) "DARK GRAY" [14]=> string(9) "DARK GRAY" } ["coloriscode"]=> array(15) { [0]=> string(5) "165C " [1]=> string(5) "165C " [2]=> string(5) "165C " [3]=> string(5) "165C " [4]=> string(5) "165C " [5]=> string(4) "431C" [6]=> string(4) "431C" [7]=> string(4) "431C" [8]=> string(4) "431C" [9]=> string(4) "431C" [10]=> string(4) "432C" [11]=> string(4) "432C" [12]=> string(4) "432C" [13]=> string(4) "432C" [14]=> string(4) "432C" } ["uvc"]=> array(15) { [0]=> string(15) "ART-J001165C 36" [1]=> string(15) "ART-J001165C 38" [2]=> string(15) "ART-J001165C 40" [3]=> string(15) "ART-J001165C 42" [4]=> string(15) "ART-J001165C 44" [5]=> string(14) "ART-J001431C36" [6]=> string(14) "ART-J001431C38" [7]=> string(14) "ART-J001431C40" [8]=> string(14) "ART-J001431C42" [9]=> string(14) "ART-J001431C44" [10]=> string(14) "ART-J001432C36" [11]=> string(14) "ART-J001432C38" [12]=> string(14) "ART-J001432C40" [13]=> string(14) "ART-J001432C42" [14]=> string(14) "ART-J001432C44" } ["taillearticle"]=> array(15) { [0]=> string(2) "36" [1]=> string(2) "38" [2]=> string(2) "40" [3]=> string(2) "42" [4]=> string(2) "44" [5]=> string(2) "36" [6]=> string(2) "38" [7]=> string(2) "40" [8]=> string(2) "42" [9]=> string(2) "44" [10]=> string(2) "36" [11]=> string(2) "38" [12]=> string(2) "40" [13]=> string(2) "42" [14]=> string(2) "44" } ["qty"]=> array(15) { [0]=> string(0) "" [1]=> string(0) "" [2]=> string(1) "1" [3]=> string(0) "" [4]=> string(0) "" [5]=> string(0) "" [6]=> string(0) "" [7]=> string(0) "" [8]=> string(0) "" [9]=> string(0) "" [10]=> string(0) "" [11]=> string(0) "" [12]=> string(0) "" [13]=> string(0) "" [14]=> string(0) "" } ["Envoi"]=> string(11) "Enregistrer" }
    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\CmdCliInsert1.php on line 37
     
    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\CmdCliInsert1.php on line 38
     
    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\CmdCliInsert1.php on line 39
     
    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\CmdCliInsert1.php on line 40
     
    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\CmdCliInsert1.php on line 41
     
    Warning: Undefined array key 15 in C:\wamp64\www\simag_prod\securise\requete\cmd_client\CmdCliInsert1.php on line 42
    Merci pour ton aide

  15. #15
    Membre éclairé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    975
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 975
    Points : 766
    Points
    766
    Par défaut
    Bonjour,

    Je tenais à vous remercier pour votre aide, j'ai fini par trouver la solution à mon problème qui venait de là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for($i=0;$i<count($_POST['codearticle']);$i++) {
    Mais je n'y serais pas arrivé sans votre aide....
    Encore merci

  16. #16
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 269
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 269
    Points : 8 568
    Points
    8 568
    Billets dans le blog
    17
    Par défaut
    C'est ce qui était proposé hier à 11h27 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $count = $_POST['codearticle']; // Nombre d'articles
    for ($i = 0; $i < $count; $i++) {
    Pour info

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec Tableau HTML, Rowspan et Onmouseover
    Par Jordel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 30/04/2009, 15h38
  2. [DOM] insertion de code HTML au sein d'un tableau avec innerHTML
    Par Tanebisse dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/11/2008, 15h52
  3. Réponses: 3
    Dernier message: 10/11/2006, 17h59
  4. Insertion javascript dans tableau HTML
    Par Rocca dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/08/2005, 13h28
  5. [VB6] recuperer des valeurs ds un tableau html avec vb!!
    Par leo13 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/12/2004, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo