Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & SQL-Server
PHP & SQL-Server Forum d'entraide sur SQL-Server avec PHP. Avant de poster -> FAQ SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/09/2006, 14h15   #1
Membre du Club
 
Inscription : mai 2003
Messages : 222
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 222
Points : 67
Points : 67
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
digger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2006, 14h23   #2
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
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 !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2006, 14h32   #3
Membre du Club
 
Inscription : mai 2003
Messages : 222
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 222
Points : 67
Points : 67
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
digger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2006, 14h41   #4
Membre éclairé
 
Avatar de DBProg
 
Étudiant
Inscription : juillet 2006
Messages : 242
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant

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

Code :
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 !

DBProg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2006, 14h46   #5
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
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 !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2006, 15h01   #6
Membre du Club
 
Inscription : mai 2003
Messages : 222
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 222
Points : 67
Points : 67
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
digger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2006, 17h48   #7
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
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 :
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 :
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 :
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 !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2006, 18h21   #8
Membre du Club
 
Inscription : mai 2003
Messages : 222
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 222
Points : 67
Points : 67
merci pour ton aide je vais testé ce soir
digger est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h50.


 
 
 
 
Partenaires

Hébergement Web