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 et boucle


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Par défaut INSERT et boucle
    Salut

    Supposons un formulaire de 3 champs (champ1, champ2, champ3) et ayant 6 lignes (cad 6 input)

    Comment avec une requete INSERT INTO peut on enregistrer chaq ligne du formulaire dans une table ayant aussi 3 champs. Car je me perds un peu dans mes boucles.
    Merci de m'aider

  2. #2
    Membre éprouvé Avatar de bluemartini
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 154
    Par défaut
    supposons que tu ais enregistré tes 6 champ1 dans le tableau $champ1, tes 6 champ2 dans le tableau $champ2 et tes 6 champ3 dans le tableau $champ3,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for($i=0;$i<6;$i++)
    {
    $requete = "INSERT INTO table VALUES (".$champ1[$i].",".$champ2[$i].",".$champ3[$i].");";
    mysql_query($requete);
    }

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Par défaut
    voilà ce ke j'ai fait mais qui ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $i=0;
    $idcarac=$_POST['champ1'];
    $idprod=$_POST['champ2'];
    $valeur=$_POST['champ3'];
     
    for($i=0; $i<6; $i++)
    {
    mysql_query("INSERT INTO table VALUES('".$idcarac."','".$idprod."','".$valeur."')");
    ........
    Alors je c pas si jè un blèm dans la requête

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 45
    Par défaut
    Bonjour,

    il faut que tes 3*6 = 18 champs ont tous un nom différent (ou soit nommé en type tableau, champ1[]...)

    ensuite tu fais tes insert avec les bons noms de champs.

    insert champ1, champ2, champ3
    insert champ4, champ5, champ6

    ...


    etc

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Par défaut
    en faite le nombre de ligne viens d'une requete qui sort les caractéristiques pour un type de produit donc le nombre de ligne peut varié et la table où on INSERT à 3 champs (idprod, idcarac, valeur).

    Voilà pourquoi on utilise une boucle

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 45
    Par défaut
    Re,

    et bien soit tu genere ton formulaire de facon a avoir des nom de champs unique, par exemple :

    champ1_1, champ2_1, champ3_1
    champ1_2, champ2_2, champ3_2

    et ceci grace a un compteur : "champ1_" + $i

    soit tu utilise la notation tableau : <input name="champ1[]" />
    et dans ce cas du recup les valeurs comme bluemartini te l'a indiqué :
    $champ1[$i]

    dans tous les cas tu cré un champ type=hidden contenant le nombre de ligne de ton formulaire
    et dans la page d'arrivé tu fais ta boucle par rapport au nombre de ligne transmit ci-dessus.

  7. #7
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Par défaut
    ok j'implémente tt ça et je vous tiens informer. Merci encore

  8. #8
    Membre éprouvé Avatar de bluemartini
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 154
    Par défaut
    Citation Envoyé par MicroAlexx Voir le message
    Re,

    et bien soit tu genere ton formulaire de facon a avoir des nom de champs unique, par exemple :

    champ1_1, champ2_1, champ3_1
    champ1_2, champ2_2, champ3_2

    et ceci grace a un compteur : "champ1_" + $i

    soit tu utilise la notation tableau : <input name="champ1[]" />
    et dans ce cas du recup les valeurs comme bluemartini te l'a indiqué :
    $champ1[$i]

    dans tous les cas tu cré un champ type=hidden contenant le nombre de ligne de ton formulaire
    et dans la page d'arrivé tu fais ta boucle par rapport au nombre de ligne transmit ci-dessus.

    la solution que je j'ai écris tiens compte du fait que tu utilises cette notation de tableau, qui est quand même bien meilleure et facile à utiliser.

  9. #9
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Par défaut
    Au faite avec ces cratéristiques pour chaque produit j'aimerais en fait des critères de recherche là c encore une autre paire de manche étant donné que ma table caractérisique est détaché de la table produit mais liée pas une clé et aussi je c pas si pour le nombre important de produit que j'aurais je dois avoir même nbre de page à concevoir pour chak type de produit?

  10. #10
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Par défaut
    merci pr votre aide ci précieux finalement comme je génère le formulaire dynamiquement alors j'utilise ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for ($i=1;  $i <= $nbq; $i++) { //on increment les resultat
    $name="Valeur".$i;
    $valeur=$$name;
    //fait la même chose avec les deux autre valeurs
     
    $insert_car="INSERT INTO PRODUIT_CAR (valeur) VALUES ('$valeur')";
    $exec_i_c=mysql_query($insert_car);
     
    }
    pour entrer les donnée ds ma table et ça marche propre merci encore

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

Discussions similaires

  1. Insert into + boucle
    Par Nana35 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 13/11/2008, 10h04
  2. [SQL] Insert avec boucle
    Par Virgile59 dans le forum Développement
    Réponses: 1
    Dernier message: 05/11/2008, 11h46
  3. requête insert avec boucle ?
    Par Kropernic dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/09/2008, 16h24
  4. INSERT par boucle ?
    Par dunbar dans le forum Langage
    Réponses: 3
    Dernier message: 31/08/2006, 12h43
  5. [Conception] INSERT par boucle ?
    Par dunbar dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 14/08/2006, 16h06

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