Requète INSERT avec jointure

Fermé
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - 20 févr. 2014 à 10:28
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - 1 mars 2014 à 00:52
Bonjour,
Je souhaite faire une jointure afin d'insérer les valeurs d'une table dans une autre, je pense qu'il faut faire un INSERT avec un SELECT.
Je n'arrive pas à faire fonctionner ma requète, c'est une requète préparée je pense que ça vient de la syntax.
Pouvez vous me donner votre avis s'ils vous plait, il y a longtemps que je galère avec cette requète.
En vous remerciant très sincérement de votre aide.
Merci

		case 'ajouter':		
				$sql = "INSERT INTO tb_gestion_adherent (civilite, nom, prenom, adresse_mail, date_naissance, telephone_fixe, telephone_mobile, adresse, lieu_dit, code_postal, ville, login, pass)
				VALUES (:civilite, :nom, :prenom, :adresse_mail, :date_naissance, :telephone_fixe, :telephone_mobile, :adresse, :lieu_dit, :code_postal, :ville, :login, :pass)";
			$requete = $bdd->prepare($sql);
			$requete->bindParam(':civilite',        	$PARAM['CIVILITE']);
			$requete->bindParam(':nom',             	$PARAM['NOM']);
			$requete->bindParam(':prenom',          	$PARAM['PRENOM']);
			$requete->bindParam(':adresse_mail',    	$PARAM['ADRESSE_MAIL']);
			$requete->bindParam(':date_naissance',  	$PARAM['DATE_NAISSANCE']);
			$requete->bindParam(':telephone_fixe',  	$PARAM['TELEPHONE_FIXE']);
			$requete->bindParam(':telephone_mobile',	$PARAM['TELEPHONE_MOBILE']);
			$requete->bindParam(':adresse',         	$PARAM['ADRESSE']);
			$requete->bindParam(':lieu_dit',        	$PARAM['LIEU_DIT']);
			$requete->bindParam(':code_postal',     	$PARAM['CODE_POSTAL']);			
			$requete->bindParam(':ville',           	$PARAM['VILLE']);
			$requete->bindParam(':login',           	$PARAM['LOGIN']);
			$requete->bindParam(':pass',            	$PARAM['PASS']);
			$requete->execute();
            
    			$sql = "INSERT INTO tb_gestion_admin (id_gestion_admin, rid_adherent, rid_categorie_statut)
				SELECT (:id_gestion_admin, :rid_adherent, :rid_categorie_statut)
FROM tb_gestion_admin
left outer JOIN tb_gestion_adherent
ON tb_gestion_admin.rid_adherent = tb_gestion_adherent.id_adherent 
left outer JOIN tb_categorie_statut
ON tb_gestion_admin.rid_categorie_statut = tb_categorie_statut.id_categorie_statut";					
			$requete = $bdd->prepare($sql);
			$requete->bindParam(':id_gestion_admin',        $PARAM['ID_GESTION_ADMIN']);
			$requete->bindParam(':rid_adherent',        	$PARAM['RID_ADHERENT']);
			$requete->bindParam(':rid_categorie_statut',    $PARAM['RID_CATEGORIE_STATUT']);
			$requete->execute();				
			break; 	

9 réponses

labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
26 févr. 2014 à 07:14
Bonjour


J'ai mis en paramètre après le SELECT la Valeur et non le nom des champs comme tu me l'a dit

Et surprise ma requète SQL dans PhpMyAdmin elle fonctionne très bien.

Par contre dans ma page PHP toujours ce message d'erreur


Notice: Undefined property: PDO::$errorInfo in C.........


$sql = "INSERT INTO tb_gestion_admin ( rid_adherent, rid_categorie_statut )
SELECT tb_gestion_adherent.id_adherent, tb_categorie_statut.id_categorie_statut
FROM tb_gestion_adherent
LEFT OUTER JOIN (tb_categorie_statut
LEFT OUTER JOIN tb_gestion_admin
ON tb_categorie_statut.id_categorie_statut = tb_gestion_admin.rid_categorie_statut)
ON tb_gestion_adherent.id_adherent = tb_gestion_admin.rid_adherent
or die(print_r($bdd->errorInfo()))";


Si jamais tu comprend cette erreur Merci

Merci beaucoup
2