Requète INSERT avec jointure
labourette
Messages postés
657
Date d'inscription
Statut
Membre
Dernière intervention
-
labourette Messages postés 657 Date d'inscription Statut Membre Dernière intervention -
labourette Messages postés 657 Date d'inscription Statut Membre Dernière intervention -
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
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;
A voir également:
- Insert inner join
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Join pdf - Télécharger - PDF
- Activer touche insert sur ASUS UX32A - Forum Clavier
- Touche insert sur clavier portable hp ✓ - Forum Clavier
9 réponses
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
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
Bonjour,
J'ai fait une requête préparée pour un insert avec des jointures pouvez-vous me donner un coup de main je suis un peu perdu.
Je vous remercie beaucoup.
J'ai fait une requête préparée pour un insert avec des jointures pouvez-vous me donner un coup de main je suis un peu perdu.
Je vous remercie beaucoup.
Bonjour
Excusez moi d'insister je suis vraiment perdu avec ses jointures malgrès tous les tutos que j'ai pu lire, un petit coup de main je vous en supplie.
Merci beaucoup
Excusez moi d'insister je suis vraiment perdu avec ses jointures malgrès tous les tutos que j'ai pu lire, un petit coup de main je vous en supplie.
Merci beaucoup
Salut,
Peux tu nous donner le message d'erreur que te retourne PDO ?
Sinon ta deuxième requête est étrange, tu as mis le nom des champs en paramètres après ton SELECT, ça ne me semble pas normal. Tu connais déjà le nom des champs, c'est plutôt leurs valeurs que tu dois passer en paramètre.
Peux tu nous donner le message d'erreur que te retourne PDO ?
Sinon ta deuxième requête est étrange, tu as mis le nom des champs en paramètres après ton SELECT, ça ne me semble pas normal. Tu connais déjà le nom des champs, c'est plutôt leurs valeurs que tu dois passer en paramètre.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Déjà un grand merci je désespérais de trouver une âme charitable pour me donner des conseils.
Mon message d'erreur est
Notice: Undefined property: PDO::$errorInfo in C......
Merci
Déjà un grand merci je désespérais de trouver une âme charitable pour me donner des conseils.
Mon message d'erreur est
Notice: Undefined property: PDO::$errorInfo in C......
Merci
Salut,
PDO::errorInfo() retourne uniquement les informations des erreurs pour les opérations exécutées directement sur un gestionnaire de base de données. Si vous créez un objet PDOStatement avec la fonction PDO::prepare() ou la fonction PDO::query() et que vous invoquez une erreur sur le gestionnaire de requête, PDO::errorInfo() ne retournera pas l'erreur depuis le gestionnaire de requête. Vous devez appeler la fonction PDOStatement::errorInfo() pour retourner les informations sur l'erreur pour une opération exécutée sur un gestionnaire de requête particulier.
Source : https://www.php.net/manual/fr/pdo.errorinfo.php
Il faut que tu définisse le mode d'erreur dans la création de ton objet PDO pour voir les erreurs SQL : https://www.php.net/manual/fr/pdo.error-handling.php
Bonne journée
PDO::errorInfo() retourne uniquement les informations des erreurs pour les opérations exécutées directement sur un gestionnaire de base de données. Si vous créez un objet PDOStatement avec la fonction PDO::prepare() ou la fonction PDO::query() et que vous invoquez une erreur sur le gestionnaire de requête, PDO::errorInfo() ne retournera pas l'erreur depuis le gestionnaire de requête. Vous devez appeler la fonction PDOStatement::errorInfo() pour retourner les informations sur l'erreur pour une opération exécutée sur un gestionnaire de requête particulier.
Source : https://www.php.net/manual/fr/pdo.errorinfo.php
Il faut que tu définisse le mode d'erreur dans la création de ton objet PDO pour voir les erreurs SQL : https://www.php.net/manual/fr/pdo.error-handling.php
Bonne journée
Bonjour
Mon erreur est
PDOStatement::errorInfo(): Array ( [0] => 00000 [1] => [2] => )
Peux tu me dire s'il te plait en clair à quoi correspond cette erreur.
Avec mes remerciements
Mon erreur est
PDOStatement::errorInfo(): Array ( [0] => 00000 [1] => [2] => )
Peux tu me dire s'il te plait en clair à quoi correspond cette erreur.
Avec mes remerciements
Ton message d'erreur est vide.
Tu dois appeler la méthode errorInfo() sur ton instance PDOStatement, soit la variable $requete dans le code de ton premier message :
Tu dois appeler la méthode errorInfo() sur ton instance PDOStatement, soit la variable $requete dans le code de ton premier message :
$requete = $bdd->prepare($sql); if (!$requete) { var_dump($requete->errorInfo()); }
Bonjour
Je reviens vers toi si tu peux m'aiguiller un peu.
En fait je suis repartie de zéro car j'étais mal parti.
J'ai créé ce script php ci-dessous
qui me renvoie bien mon tableau avec les case à coché ci-dessous
Maintenat il faudrais que je fasse une boucle sur ce tableau et une insertion par tour de boucle dans ma BDD en sachant que j'ai une table "gestion_admin" avec comme champs
id_gestion_admin (auto incrémente)
rid_adherent relation avec les adherent à insérer
rid_categorie_statut relation avec les categorie des cases à cocher
Toute les infos c'est avec un formulaire que je les rentres.
Bien entendu pour l'insertion des membres ça marche déjà.
un très grand merci si tu peux me donner des infos simplement en écrivant comment je pourrais m'y prendre comme ça sa me fera travaillé mes meninges lol.
Merci encore
Je reviens vers toi si tu peux m'aiguiller un peu.
En fait je suis repartie de zéro car j'étais mal parti.
J'ai créé ce script php ci-dessous
if(isset($_POST['action']) && !empty($_POST['categorie_statut'])){ echo '<pre>'; print_r($_POST['categorie_statut']); echo '</pre>'; $categorie_statut =''; for ( $i = 0; $i < count($_POST['categorie_statut']); $i++ ) echo $categorie_statut; } else{ echo 'Sélectionner pour ce Membre un choix pour la catégorie statut!'; }
qui me renvoie bien mon tableau avec les case à coché ci-dessous
Array ( [0] => 1 )
Maintenat il faudrais que je fasse une boucle sur ce tableau et une insertion par tour de boucle dans ma BDD en sachant que j'ai une table "gestion_admin" avec comme champs
id_gestion_admin (auto incrémente)
rid_adherent relation avec les adherent à insérer
rid_categorie_statut relation avec les categorie des cases à cocher
Toute les infos c'est avec un formulaire que je les rentres.
Bien entendu pour l'insertion des membres ça marche déjà.
un très grand merci si tu peux me donner des infos simplement en écrivant comment je pourrais m'y prendre comme ça sa me fera travaillé mes meninges lol.
Merci encore