Requete sql INSERT INTO + SELECT (php)
11 messages
• Page 1 sur 1
- melanie75
- Nouveau WRInaute

- Messages: 5
- Inscription: 13 Avr 2011
Requete sql INSERT INTO + SELECT (php)
Bonjour,
Je vous écris car j'ai grandement besoin de votre aide.
J'ai 5 tables sur MySQL et je voudrais insérer certains champs dans ces 5 tables dans une seule.
Voici la requête que j'ai fais dans un fichier *.php, cependant elle ne fonctionne pas mais ne me revois aucune erreur.
Je n'arrive pas a comprendre ce qui cloche.
J'aimerais beaucoup avoir votre aide.
Merci à tous !
Mélanie
Je vous écris car j'ai grandement besoin de votre aide.
J'ai 5 tables sur MySQL et je voudrais insérer certains champs dans ces 5 tables dans une seule.
Voici la requête que j'ai fais dans un fichier *.php, cependant elle ne fonctionne pas mais ne me revois aucune erreur.
- Code: Tout sélectionner
$sql="INSERT INTO relait_mip.gg_eleves
SELECT gg_resp1.UAJ, gg_resp1.ANNEE_SCOLAIRE, gg_el1.ELEVE_ID, gg_el1.ELENOET, gg_el1.NOM, gg_el1.PRENOM, gg_structure.CODE_STRUCTURE, gg_structure.LIBELLE_LONG, gg_structure.CODE_MEF, mip_diplomes.type_dip, mip_diplomes.libelle, gg_el1.DATE_NAISS, gg_resp3.LIGNE1_ADRESSE, gg_resp3.LIGNE2_ADRESSE, gg_resp3.LIGNE3_ADRESSE, gg_resp3.CODE_POSTAL, gg_resp3.LL_PAYS, gg_resp3.LIBELLE_POSTAL, gg_resp3.COMMUNE_ETRANGERE
FROM relait_mip.gg_el1, relait_mip.gg_el2, relait_mip.gg_resp1, relait_mip.gg_resp2, relait_mip.gg_resp3, relait_mip.gg_structure, relait_mip.gg_mef_dip, relait_mip.mip_diplomes
WHERE gg_el1.ELEVE_ID = gg_resp2.ELEVE_ID2
AND gg_resp1.PERSONNE_ID = gg_resp2.PERSONNE_ID2
AND gg_resp1.ADRESSE_ID = gg_resp3.ADRESSE_ID3
AND gg_el2.CODE_STRUCTURE9 = gg_structure.CODE_STRUCTURE
AND gg_structure.CODE_MEF = gg_mef_dip.CODE_MEF
AND gg_mef_dip.code_diplome = mip_diplomes.c_diplome";
$req=mysql_query($sql)or die (mysql_error());
Je n'arrive pas a comprendre ce qui cloche.
J'aimerais beaucoup avoir votre aide.
Merci à tous !
Mélanie
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
Re: Requete sql INSERT INTO + SELECT (php)
Tu nous facilites pas vraiment la tâche pour t'aider la.
Si on pouvait avoir :
- un descriptif de chaque table
- t'es sur que ta requete select est bonne ?
Si on pouvait avoir :
- un descriptif de chaque table
- t'es sur que ta requete select est bonne ?
Dernière édition par YoyoS le Mer Avr 13, 2011 8:12, édité 2 fois.
-

Blount - WRInaute occasionnel

- Messages: 430
- Inscription: 18 Nov 2010
Re: Requete sql INSERT INTO + SELECT (php)
Il faut spécifier les colonnes :
De plus, utilise plutôt les jointures avec « JOIN ».
Tu peux aussi nous donner l'erreur générée (mysql_error).
- Code: Tout sélectionner
INSERT INTO relait_mip.gg_eleves (column1, column2, columnX) SELECT …
De plus, utilise plutôt les jointures avec « JOIN ».
Tu peux aussi nous donner l'erreur générée (mysql_error).
-

YoyoS - WRInaute accro

- Messages: 3835
- Inscription: 14 Sep 2006
Re: Requete sql INSERT INTO + SELECT (php)
Le seul cas ou il n'est pas utile de spécifier le nom des colonnes, c'est dans le cas ou la structure de la table d'arrivée et la même que le résultat de ta requête select.
Il doit donc y avoir un souci dans ta requête de sélection. Ou bien oui spécifie les colonnes manuellement.
Il doit donc y avoir un souci dans ta requête de sélection. Ou bien oui spécifie les colonnes manuellement.
- melanie75
- Nouveau WRInaute

- Messages: 5
- Inscription: 13 Avr 2011
Re: Requete sql INSERT INTO + SELECT (php)
J'ai spécifiée les noms des colonnes mais ça ne marche toujours pas.
De plus mysql_error() ne me renvois aucune erreur.
En fait, c'est comme si la requête s’exécutait parfaitement sauf que les données ne sont pas enregistrées dans la table.
Pour le SELECT j'ai l'impression qu'elle est bonne oui.
Pour les jointures avec JOIN je n'en ai jamais fait, j'ai toujours fait comme ça du coup je ne sais pas trop comment il faut faire (LEFT JOIN, RIGHT JOIN, JOIn etc. )
De plus mysql_error() ne me renvois aucune erreur.
En fait, c'est comme si la requête s’exécutait parfaitement sauf que les données ne sont pas enregistrées dans la table.
Pour le SELECT j'ai l'impression qu'elle est bonne oui.
- Code: Tout sélectionner
$sql="INSERT INTO relait_mip.gg_eleves (UAJ, ANNEE_SCOLAIRE, ELEVE_ID, ELENOET, NOM, PRENOM, CODE_STRUCTURE, LIBELLE_LONG, CODE_MEF, TYPE_DIP, LIBELLE_DIP, DATE_NAISS, ADRESSE1, ADRESSE2, ADRESSE3, CODE_POSTAL, LL_PAYS, LIBELLE_POSTAL, COMMUNE_ETRANGERE)
SELECT gg_resp1.UAJ, gg_resp1.ANNEE_SCOLAIRE, gg_el1.ELEVE_ID, gg_el1.ELENOET, gg_el1.NOM, gg_el1.PRENOM, gg_structure.CODE_STRUCTURE, gg_structure.LIBELLE_LONG, gg_structure.CODE_MEF, mip_diplomes.type_dip, mip_diplomes.libelle, gg_el1.DATE_NAISS, gg_resp3.LIGNE1_ADRESSE, gg_resp3.LIGNE2_ADRESSE, gg_resp3.LIGNE3_ADRESSE, gg_resp3.CODE_POSTAL, gg_resp3.LL_PAYS, gg_resp3.LIBELLE_POSTAL, gg_resp3.COMMUNE_ETRANGERE
FROM relait_mip.gg_el1, relait_mip.gg_el2, relait_mip.gg_resp1, relait_mip.gg_resp2, relait_mip.gg_resp3, relait_mip.gg_structure, relait_mip.gg_mef_dip, relait_mip.mip_diplomes
WHERE gg_el1.ELEVE_ID = gg_resp2.ELEVE_ID
AND gg_resp1.PERSONNE_ID = gg_resp2.PERSONNE_ID2
AND gg_resp1.ADRESSE_ID = gg_resp3.ADRESSE_ID3
AND gg_el2.CODE_STRUCTURE9 = gg_structure.CODE_STRUCTURE
AND gg_structure.CODE_MEF = gg_mef_dip.CODE_MEF
AND gg_mef_dip.code_diplome = mip_diplomes.c_diplome";
$req=mysql_query($sql)or die (mysql_error());
Pour les jointures avec JOIN je n'en ai jamais fait, j'ai toujours fait comme ça du coup je ne sais pas trop comment il faut faire (LEFT JOIN, RIGHT JOIN, JOIn etc. )
- melanie75
- Nouveau WRInaute

- Messages: 5
- Inscription: 13 Avr 2011
Re: Requete sql INSERT INTO + SELECT (php)
Voici un descriptif de chaque tables que j'utilise:
- Code: Tout sélectionner
# --------------------------------------------------------
#
# Structure de la table `gg_el1`
#
CREATE TABLE `gg_el1` (
`UAJ` varchar(110) NOT NULL default '',
`ANNEE_SCOLAIRE` varchar(110) NOT NULL default '',
`ELEVE_ID` varchar(110) NOT NULL default '',
`ELENOET` varchar(110) NOT NULL default '',
`NOM` varchar(110) NOT NULL default '',
`PRENOM` varchar(110) NOT NULL default '',
`DATE_NAISS` varchar(110) NOT NULL default '',
`CODE_MOTIF_SORTIE` varchar(110) NOT NULL default ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# --------------------------------------------------------
#
# Structure de la table `gg_el2`
#
CREATE TABLE `gg_el2` (
`ELEVE_ID7` varchar(110) NOT NULL default '',
`CODE_STRUCTURE9` varchar(110) NOT NULL default '',
`TYPE_STRUCTURE` varchar(110) NOT NULL default ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# --------------------------------------------------------
#
# Structure de la table `gg_eleves`
#
CREATE TABLE `gg_eleves` (
`UAJ` varchar(20) NOT NULL default '',
`ANNEE_SCOLAIRE` varchar(4) NOT NULL default '',
`ELEVE_ID` varchar(20) NOT NULL default '',
`ELENOET` varchar(20) NOT NULL default '',
`NOM` varchar(30) NOT NULL default '',
`PRENOM` varchar(30) NOT NULL default '',
`CODE_STRUCTURE` varchar(30) NOT NULL default '',
`LIBELLE_LONG` varchar(90) NOT NULL default '',
`CODE_MEF` varchar(15) NOT NULL default '',
`TYPE_DIP` varchar(60) NOT NULL default '',
`LIBELLE_DIP` varchar(120) NOT NULL default '',
`DATE_NAISS` varchar(30) NOT NULL default '',
`ADRESSE1` varchar(90) NOT NULL default '',
`ADRESSE2` varchar(90) NOT NULL default '',
`ADRESSE3` varchar(90) NOT NULL default '',
`CODE_POSTAL` varchar(6) NOT NULL default '',
`LL_PAYS` varchar(90) NOT NULL default '',
`LIBELLE_POSTAL` varchar(90) NOT NULL default '',
`COMMUNE_ETRANGERE` varchar(90) NOT NULL default ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# --------------------------------------------------------
#
# Structure de la table `gg_mef_dip`
#
CREATE TABLE `gg_mef_dip` (
`CODE_MEF` varchar(11) NOT NULL default '',
`CODE_DIPLOME` int(8) NOT NULL default '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# --------------------------------------------------------
#
# Structure de la table `gg_resp1`
#
CREATE TABLE `gg_resp1` (
`VERSION` varchar(110) NOT NULL default '',
`UAJ` varchar(110) NOT NULL default '',
`ANNEE_SCOLAIRE` varchar(110) NOT NULL default '',
`DATE_EXPORT` varchar(110) NOT NULL default '',
`HORODATAGE` varchar(110) NOT NULL default '',
`PERSONNE_ID` varchar(110) NOT NULL default '',
`LC_CIVILITE` varchar(110) NOT NULL default '',
`LL_CIVILITE` varchar(110) NOT NULL default '',
`NOM` varchar(110) NOT NULL default '',
`PRENOM` varchar(110) NOT NULL default '',
`TEL_PERSONNEL` varchar(110) NOT NULL default '',
`TEL_PORTABLE` varchar(110) NOT NULL default '',
`ACCEPTE_SMS` varchar(110) NOT NULL default '',
`TEL_PROFESSIONNEL` varchar(110) NOT NULL default '',
`MEL` varchar(110) NOT NULL default '',
`COMMUNICATION_ADRESSE` varchar(110) NOT NULL default '',
`ADRESSE_ID` varchar(110) NOT NULL default '',
`CODE_PROFESSION` varchar(110) NOT NULL default ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# --------------------------------------------------------
#
# Structure de la table `gg_resp2`
#
CREATE TABLE `gg_resp2` (
`ELEVE_ID` varchar(110) NOT NULL default '',
`PERSONNE_ID2` varchar(110) NOT NULL default '',
`RESP_LEGAL` varchar(110) NOT NULL default '',
`CODE_PARENTE` varchar(110) NOT NULL default '',
`RESP_FINANCIER` varchar(110) NOT NULL default '',
`PERS_PAIEMENT` varchar(110) NOT NULL default '',
`PERS_CONTACT` varchar(110) NOT NULL default ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# --------------------------------------------------------
#
# Structure de la table `gg_resp3`
#
CREATE TABLE `gg_resp3` (
`ADRESSE_ID3` varchar(110) NOT NULL default '',
`LIGNE1_ADRESSE` varchar(110) NOT NULL default '',
`LIGNE2_ADRESSE` varchar(110) NOT NULL default '',
`LIGNE3_ADRESSE` varchar(110) NOT NULL default '',
`LIGNE4_ADRESSE` varchar(110) NOT NULL default '',
`CODE_POSTAL` varchar(110) NOT NULL default '',
`CODE_PAYS` varchar(110) NOT NULL default '',
`CODE_COMMUNE_INSEE` varchar(110) NOT NULL default '',
`LL_PAYS` varchar(110) NOT NULL default '',
`CODE_DEPARTEMENT` varchar(110) NOT NULL default '',
`LIBELLE_POSTAL` varchar(110) NOT NULL default '',
`COMMUNE_ETRANGERE` varchar(110) NOT NULL default ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
# --------------------------------------------------------
#
# Structure de la table `gg_structure`
#
CREATE TABLE `gg_structure` (
`VERSION` varchar(200) NOT NULL default '',
`UAJ` varchar(200) NOT NULL default '',
`ANNEE_SCOLAIRE` text NOT NULL,
`DATE_EXPORT` text NOT NULL,
`HORODATAGE` text NOT NULL,
`CODE_STRUCTURE` text NOT NULL,
`LIBELLE_LONG` varchar(200) NOT NULL default '',
`CODE_RNE` varchar(200) NOT NULL default '',
`CODE_MEF` varchar(11) NOT NULL default '',
`CODE_STRUCTURE2` varchar(200) NOT NULL default '',
`LIBELLE_LONG3` text NOT NULL,
`CODE_RNE4` varchar(200) NOT NULL default '',
`CODE_MEF5` varchar(200) NOT NULL default '',
`CODE_STRUCTURE6` varchar(200) NOT NULL default '',
KEY `CODE_MEF` (`CODE_MEF`),
KEY `UAJ` (`UAJ`,`CODE_MEF`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
# --------------------------------------------------------
#
# Structure de la table `mip_diplomes`
#
CREATE TABLE `mip_diplomes` (
`id` int(10) unsigned NOT NULL auto_increment,
`c_diplome` varchar(255) default NULL,
`type_dip` varchar(255) default NULL,
`spe` varchar(255) default NULL,
`libelle` varchar(255) default NULL,
`date_creation` datetime default NULL,
`abrogation` datetime default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `c_diplome` (`c_diplome`),
KEY `type_dip` (`type_dip`),
KEY `spe` (`spe`),
KEY `date_creation` (`date_creation`)
) ENGINE=MyISAM AUTO_INCREMENT=3766 DEFAULT CHARSET=latin1 AUTO_INCREMENT=3766 ;
- silef
- WRInaute occasionnel

- Messages: 317
- Inscription: 13 Jan 2006
Re: Requete sql INSERT INTO + SELECT (php)
Je pense qu'il manque simplement VALUES dans ta requete.
Celle ci doit ressembler à quelquechose comme ça : INSERT INTO matable (champ1, champ2) VALUES (SELECT champ1, champ2 FROM matable2)
ps: fais bien attention au format des champs que tu récupères ils doivent être du même type que ceux dans lesquels tu essaies de les ajouter.
Celle ci doit ressembler à quelquechose comme ça : INSERT INTO matable (champ1, champ2) VALUES (SELECT champ1, champ2 FROM matable2)
ps: fais bien attention au format des champs que tu récupères ils doivent être du même type que ceux dans lesquels tu essaies de les ajouter.
11 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- [mysql+php] Insert....select et modifications au passage
- PB php/sql insert formulaire complexe
- sql : requête select MAX(champ) from table
- [SQL]Requete select à l'intérieur d'un Delete
- affichage requete sql dans un champ select en temps reel (ou presque...)
- [PHP/SQL] Associer plusieurs SELECT de tables MySQL
- [PHP/MySQL] Excepter une valeur dans un requête SQL en PHP
- Requete sql complexe en php
- Petite question requete sql en PHP
- requête sql en php pour mysql
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités
