INSERT avec jointure
Résolu/Fermé
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
-
2 févr. 2016 à 14:04
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 2 févr. 2016 à 20:14
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 2 févr. 2016 à 20:14
A voir également:
- Insert into jointure
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Delete avec jointure ✓ - Forum Bases de données
- Ou est la touche "INSERT" ? ✓ - Forum Clavier
- Insert into inner join ✓ - Forum Webmastering
4 réponses
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
2 févr. 2016 à 20:14
2 févr. 2016 à 20:14
Bonjour
Avec tes explications qui m'ont bien guidé j'ai réussi à faire ce que je souhaitais. je me permet de t'envoyer ma fonction juste pour me donner ton avis sur le fait que je récupére non seulement le dernier Adherent inséré mais aussi la dernière date d'entrée, je trouve ça presque anormal, mais bon ça a le mérite de fonctionner, si tu peux me donner ton avis.
Je te remercie
Avec tes explications qui m'ont bien guidé j'ai réussi à faire ce que je souhaitais. je me permet de t'envoyer ma fonction juste pour me donner ton avis sur le fait que je récupére non seulement le dernier Adherent inséré mais aussi la dernière date d'entrée, je trouve ça presque anormal, mais bon ça a le mérite de fonctionner, si tu peux me donner ton avis.
Je te remercie
public function AjoutMembre() { $sql = "INSERT INTO tb_adherent(nom, prenom, email, naissance, fixe, mobile, adresse, lieu_dit, code_postal, ville, pseudo, password) VALUES(:nom, :prenom, :email, :naissance, :fixe, :mobile, :adresse, :lieu_dit, :code_postal, :ville, :pseudo, :password)"; $requete = $this->bdd->prepare($sql); $donnees = $requete->execute(array( 'nom' => $this->nom, 'prenom' => $this->prenom, 'email' => $this->email, 'naissance' => $this->naissance, 'fixe' => $this->fixe, 'mobile' => $this->mobile, 'adresse' => $this->adresse, 'lieu_dit' => $this->lieu_dit, 'code_postal' => $this->code_postal, 'ville' => $this->ville, 'pseudo' => $this->pseudo, 'password' => $this->password, )); $id_adherent = $this->bdd->lastInsertId(); $sql2 = "INSERT INTO tb_entree(debut, fin) VALUES(:debut, :fin)"; $requete2 = $this->bdd->prepare($sql2); $donnees = $requete2->execute(array( 'debut' => $this->debut, 'fin' => $this->fin, )); $rid_entree = $this->bdd->lastInsertId(); $sql = "INSERT INTO tb_adherent_tb_entree(rid_adherent, rid_entree) VALUES(:rid_adherent, :rid_entree)"; $requete = $this->bdd->prepare($sql); $requete->execute(array( 'rid_adherent' => $id_adherent, 'rid_entree' => $rid_entree, )); return $donnees; }
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
2 févr. 2016 à 14:13
2 févr. 2016 à 14:13
Bonjour,
Tu vas devoir faire Autant de requêtes INSERT qu'il y a de table.
(tu ne peux pas le faire en une seule instruction)
Donc... tu fais l'insertion dans ta première table
Tu récupères l'ID qui a été créé (via l'instruction lastInsertId )
Tu t'en sers pour faire l'insertion dans ta seconde table...
puis Idem... avec ta troisième table.
Tu vas devoir faire Autant de requêtes INSERT qu'il y a de table.
(tu ne peux pas le faire en une seule instruction)
Donc... tu fais l'insertion dans ta première table
Tu récupères l'ID qui a été créé (via l'instruction lastInsertId )
Tu t'en sers pour faire l'insertion dans ta seconde table...
puis Idem... avec ta troisième table.
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
2 févr. 2016 à 15:39
2 févr. 2016 à 15:39
Bonjour,
Merci de ton aide.
J'ai bien fait du moins je crois avoir fait ce que tu as dit, mais il y a quelque chose qui m'échappe en fait.
Lorsque je fait l'ajout d'un membre il y a aucun soucis mais l'ajout de la date ne ce fait pas.
Tu peux me donner ton avis s'il te plait, merci
Merci de ton aide.
J'ai bien fait du moins je crois avoir fait ce que tu as dit, mais il y a quelque chose qui m'échappe en fait.
Lorsque je fait l'ajout d'un membre il y a aucun soucis mais l'ajout de la date ne ce fait pas.
public function AjoutDateEntree() { $sql = "INSERT INTO tb_entree(debut, fin) VALUES(:debut, :fin)"; $requete = $this->bdd->prepare($sql); $donnees = $requete->execute(array( 'debut' => $this->debut, 'fin' => $this->fin, )); $id_adherent = $this->bdd->lastInsertId(); $sql = "INSERT INTO tb_adherent_tb_entree(rid_adherent, rid_entree) VALUES(:rid_adherent, :rid_entree)"; $requete = $this->bdd->prepare($sql); $requete->execute(array( 'rid_adherent' => $id_adherent, 'rid_entree' => $this->rid_entree, )); return $donnees; }
Tu peux me donner ton avis s'il te plait, merci
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
2 févr. 2016 à 16:08
2 févr. 2016 à 16:08
Le code me semble correct.
Il faudrait que tu fasses de PRINT_R de ton array de data pour voir si les valeurs sont bien présentes.
Il faudrait que tu fasses de PRINT_R de ton array de data pour voir si les valeurs sont bien présentes.
papyclic
Messages postés
446
Date d'inscription
mercredi 5 novembre 2014
Statut
Membre
Dernière intervention
18 octobre 2016
3
2 févr. 2016 à 17:15
2 févr. 2016 à 17:15
En fait je ne sais pas si c'est au niveau de l'organisation de mes fichiers qui ne vas pas.
J'ai un fichier de class pour mes fonctions "ajout membre"
un autre pour la class des fonctions "ajout entree"
un fichier avec mon formulaire qui fait appel à mes fonctions pour l'ajout des membres
et un fichier qui fait appel à mes fonctions pour l'ajout des dates
A ce niveau d'organisation je pense qu'il y a un problème.
T'en pense quoi?
Merci
J'ai un fichier de class pour mes fonctions "ajout membre"
un autre pour la class des fonctions "ajout entree"
un fichier avec mon formulaire qui fait appel à mes fonctions pour l'ajout des membres
et un fichier qui fait appel à mes fonctions pour l'ajout des dates
A ce niveau d'organisation je pense qu'il y a un problème.
T'en pense quoi?
Merci
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
2 févr. 2016 à 19:07
2 févr. 2016 à 19:07
Si tu as deux CLASS différentes pour gérer séparément les membres et les entrées ....
il faut alors découper ta fonction AjoutDateEntree() en deux .
Une fonction dans ta class des membres => qui retourne l' ID créé
et Une fonction dans ta class des entrées qui aura en paramètre l' ID membre
Puis appeller les deux fonctions dans ton code principale.....
il faut alors découper ta fonction AjoutDateEntree() en deux .
Une fonction dans ta class des membres => qui retourne l' ID créé
et Une fonction dans ta class des entrées qui aura en paramètre l' ID membre
Puis appeller les deux fonctions dans ton code principale.....