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 :

insert dan splusieurs tables [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 295
    Points : 135
    Points
    135
    Par défaut insert dan splusieurs tables
    Bonjour,

    J'ai un site d'annonces autos avec une table annonce qui contient l'ensemble des champs correpondant aux annonces.
    Dans mon Fomulaire j'ai un listbox qui liste l'ensemble des options d'une annonce
    l'insert de la table annonce se passe bien
    ma question est la suivante
    comment inserer dans table multiple l'id de l'option selectionne en boucle
    c'est a dire

    Annonce => annonce_option <= option
    idannonce idannonce idoption
    Date idoption option
    Marque
    Modele
    ect..

    merci de votre aide

  2. #2
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Je pense pas avoir bien compris mais peut être que cette syntaxe pourrait t'aider.
    INSERT INTO ma_table (champs1,champs2,...) SELECT idoption,mon_option FROM tb_option WHERE ma_clause.

    Cela aura pour effet qu'il y aura autant d'insert qu'il y a de resultat retourné par le "select" par contre, je crois que ceci dépend de la version de Mysql si c'est mysql que tu utilises. Si c'est SQLServer, pas de problème.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 295
    Points : 135
    Points
    135
    Par défaut
    je vais être plus clair
    j'ai un formulaire avec des champs qui correpondent à un vehicule qui insere dans table annonce
    j'ai un combox option relie à la table option qui contient les options
    comme une annonce put avoir plusieurs option
    exemple
    AIRB ABS, CLIM ecct

    comment inserer dans une table de jonction les options qui correpondent au vehicule

  4. #4
    Membre confirmé
    Avatar de DBProg
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 579
    Points
    579
    Par défaut
    En insérant le véhicule dans une table, et les options dans une autre. Plusieurs requêtes sont nécessaires.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO vehicule VALUES (....)
    INSERT INTO options VALUES ( (1, 1), (1, 2), (1, 4))
    1 étant par exemple l'id du véhicule, et 1, 2 et 4 les id des options.
    La vitesse de la lumière étant supérieure à la vitesse du son, certaines personnes brillent encore tant qu'elles n'ont pas parlé
    -----------------------------------------------------------
    Retrouvez mes articles informatique sur mon Site Developpez.
    Le reste, sur le Site perso !


  5. #5
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Donc tu souhaites simplement associer des options précédement selectionné à la table annonce?
    En faite, il faut faire une table de jointure qui fera le lien entre la table option (si elles existe) et la table annonce.
    En gros :

    Annonce(idannonce,annonce,....);
    Option(idoption,option,...);
    Annonce_option(idannonce,idoption);

    idAnnonce | annonce
    1 | annonce 1
    2 | annonce 2


    idOption | Option
    6 | airbag
    7 | autoradio intégré
    9 | leve vitre électrique

    idAnnonce | idOption
    1 | 6
    1 | 7
    1 | 9
    2 | 9

    Là, l'annonce 1 à toute les options l'annonce 2 n'a que les leves vitre électrique.
    La requete sera (mode simplifié).

    SELECT a.* FROM Option AS a, Annonce_Option AS b WHERE a.idOption = b.idOption AND b.idAnnonce = 1;

    Te retournera les options de l'annonce 1.

    Pour associer les Option à une annonce il faut remplire la table de jointure en récupérant l'idannonce et toute les idoptions.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 295
    Points : 135
    Points
    135
    Par défaut
    je ne souhaite pas afficher pour les recuperer mais simplement les inserer
    comme tu decris tes tables insert dans 3 tables
    la table annonce =>OK
    je ne sais pas comment bouclé pour associé chaque id option à chaque id annonce dans la table de jonction annonce_option
    comment faire merci de votre aide

  7. #7
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 037
    Points
    6 037
    Par défaut
    Ben ça depend comment tu listes tes bouton dans le HTML mais un exemple :
    Dans le cas ou les options sont issu d'une table option

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
    $i=1;
    $rs  = mysql_query("SELECT idoption,option FROM tb_option");
    while($data=mysql_fetch_array($rs) ){
      echo '<input type="cjeckbox" name="idoption_'.$i.'" value="'.$data['idoption'].'">'.$data['option'].'<br>';
    $i++
    }
    echo '<input type="hidden" name="nboption" value="'.mysql_num_rows($rs).'">';
    ...
    Ceci affichera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <input type="checkbox" name="idoption_1" value="1"> Airbag
    <input type="checkbox" name="idoption_2" value="3"> Leve vitre
    <input type="checkbox" name="idoption_3" value="4"> Siege chauffant
    <input type="hidden" name="nboption" value="3">
    <input type="hidden" name="idannonce" value="1">
    Pour récupérer ces informations apres avoir posté.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $req="";
    for($i=1;$i<=$_POST['nboption'];$i++){
      if(isset($_POST['idoption_'.$i])){
     $req.="INSERT INTO Annonce_Option (idannonce,idoption) VALUES (".$_POST['idannonce'].",".$_POST['idoption_'.$i].");";
      }
    }
    ...
    C'est un résumé il y a des choses qui peuvent être amélioré et à compléter
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 295
    Points : 135
    Points
    135
    Par défaut
    merci pour ton aide je vais testé ce soir

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

Discussions similaires

  1. [ZEOSLIB] Problème Insertion dans une table
    Par moscovisci dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/06/2005, 12h05
  2. [interbase6]probleme d'insertion dans une table
    Par macadam314 dans le forum Bases de données
    Réponses: 10
    Dernier message: 22/02/2005, 14h21
  3. [Sybase] Temps d'une insertion dans une table
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 14/02/2005, 10h04
  4. Extraction d'un .txt et Insertion dans une table
    Par PoPmiSiR dans le forum Access
    Réponses: 8
    Dernier message: 28/10/2004, 19h13
  5. Détection insertion dans une Table
    Par abelman dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/07/2004, 14h24

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