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

PHP & Base de données Discussion :

[SQL] Boucle de requête SQL


Sujet :

PHP & Base de données

  1. #1
    Membre du Club Avatar de xender
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 93
    Points : 44
    Points
    44
    Par défaut [SQL] Boucle de requête SQL
    Bonjour à tous !

    voici mon pti problème, je voudrais insérer des valeurs dans ma base de donnée avec un boucle conditionnel.
    Voici ma requète :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ($i=1;$i<12;$i++){
            $result1 = mysql_query("INSERT INTO posts_commande (id_commande, ref_piece , quantite, designation, ref_appareil , num_fabric) VALUES ('$id_commande', '$ref.$i', '$qte.$i', '$designation.$i', '$ref_appareil.$i', '$numero_fabrication.$i')", $dbprotect) or die(mysql_error());
            }
    Mais le problème c'est que j'ai plusieurs ligne contenant par exemple une ref qui est nommée ref1 dans mon input du formulaire.

    Je récupère les valeurs des input avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for ($i=1;$i<12;$i++){
            if(isset($_POST['ref'][$i])){
                $ref.$i = isset($_POST['ref'][$i]);
                $designation.$i = isset($_POST['designation'][$i]);
                $ref_appareil.$i = isset($_POST['ref_appareil'][$i]);
                $numero_fabrication.$i = isset($_POST['numero_fabrication'][$i]);
                $qte.$i = isset($_POST['qte'][$i]);
                }
            }
    L'erreur retournée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined variable: ref in e:\program files\easyphp1-8\www\ci  secu\formulaire_client.php on line 79
    Je sais que mon erreur est dans l'assignation du nom de mes variables dans le sql mais je ne trouve pas comment faire :-(
    il faut que le code génère ref1, ref2, ref3 ...

    pouvez m'expliquer la syntaxe svp?

    merci d'avance
    A bientôt
    Xender

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    peux tu montrer un bout d code de ton formulaire? personnellement je pense q tu es parti sur une mauvaise base. on peut passer un tableau a un formulaire au lieu d'ajouter des $i a la suite des noms

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    Je suis pas forcement plus renseigné que toi lol mais ca serait pas mieu comme ca??:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ($i=1;$i<12;$i++){
            $result1 = mysql_query("INSERT INTO posts_commande (id_commande, ref_piece , quantite, designation, ref_appareil , num_fabric) VALUES ('$id_commande', '$ref[$i]', '$qte[$i]', '$designation[$i]', '$ref_appareil[$i]', '$numero_fabrication[$i]')", $dbprotect) or die(mysql_error());
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            if(isset($_POST['ref'])){
                $ref = isset($_POST['ref']);
                $designation= isset($_POST['designation']);
                $ref_appareil= isset($_POST['ref_appareil']);
                $numero_fabrication = isset($_POST['numero_fabrication']);
                $qte = isset($_POST['qte']);
            }
    Comme dit ouatmad avec un tableau plus simple...

  4. #4
    Membre du Club Avatar de xender
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 93
    Points : 44
    Points
    44
    Par défaut
    Salut voici le code html/php de la génération des lignes input :
    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
    <table width="100%" border="0" align="center" cellpadding="2" cellspacing="0">
                  <tr>
                    <td class="fond_intitule" align="center"><div align="center">Ref pi&egrave;ce d&eacute;tach&eacute;e</div></td>
                    <td class="fond_intitule" align="center"><div align="center">QTE</div></td>
                    <td class="fond_intitule" align="center"><div align="center">D&eacute;signation de la pi&egrave;ce </div></td>
                    <td class="fond_intitule" align="center"><div align="center">Ref. appareil</div></td>
                    <td class="fond_intitule" align="center"><div align="center">N&deg; fabrication</div></td>
                  </tr>
     
                        <?php 
                            $i = 1;
     
                            while ($i <= 12) {
                            ?>
                            <tr>
                            <td class="fond_formulaire" align="center">                  <div align="center">
                                  <input id="ref<?php echo $i; ?>" name="ref<?php echo $i; ?>" size="6" maxlength="6" />                
                                </div></td>
                                <td class="fond_formulaire">                  <div align="center">
                                  <input id="qte<?php echo $i; ?>" name="qte<?php echo $i; ?>" size="1" maxlength="1" value="1" onblur="verif_quantite(this.name,this.value);" />                
                                </div></td>
                                <td class="fond_formulaire">                    <div align="center">
                                  <input id="designation<?php echo $i; ?>" name="designation<?php echo $i; ?>" size="50" maxlength="255" />                  
                                </div></td>
                                <td class="fond_formulaire">                    <div align="center">
                                  <input id="ref_appareil<?php echo $i; ?>" name="ref_appareil<?php echo $i; ?>" size="10" maxlength="10" />                  
                                </div></td>
                                <td class="fond_formulaire">                    <div align="center">
                                  <input id="numero_fabrication<?php echo $i; ?>" name="numero_fabrication<?php echo $i; ?>" size="10" maxlength="10" />                  
                                </div></td></tr>
                            <?php
                            $i++;
                            }    
                        ?>            
              </table>

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    faut que tu fasse avec un tableau c'est clair!!!!

  6. #6
    Membre du Club Avatar de xender
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 93
    Points : 44
    Points
    44
    Par défaut
    tu peux m'expliquer comment faire? stp
    merci

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    Par défaut
    remplace ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="ref<?php echo $i; ?>" name="ref<?php echo $i; ?>
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id="ref[]" name="ref[] ?>
    et bien sur pas ça seulement . tu enlève les echo $i et tu met tout simplement des crochets. tu recupereras alors sous forme de tableau

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    voila pour la recup au cas ou lol
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
                $ref = isset($_POST['ref']);

Discussions similaires

  1. [SQL] Boucle et requête
    Par dafalri dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 31/08/2006, 15h03
  2. Boucle dans requête SQL.
    Par Philou1313 dans le forum ASP
    Réponses: 3
    Dernier message: 30/06/2006, 22h50
  3. [SQL] Concaténer des requêtes SQL en PHP
    Par brotelle dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 18/04/2006, 20h53
  4. Utilisation d'une fonction Transact-SQL ds une requête SQL
    Par Fl0ppeur dans le forum Langage SQL
    Réponses: 1
    Dernier message: 21/02/2006, 14h42
  5. [SQL] Problème de requête SQL de plus de 8060 caractères ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 06/04/2005, 16h07

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