PHP-MYSQL fonction insert entre 2 tables
Fermé
Serzo
Messages postés
3
Date d'inscription
lundi 15 juin 2015
Statut
Membre
Dernière intervention
16 juin 2015
-
15 juin 2015 à 17:19
jordane45 Messages postés 38453 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 mars 2025 - 16 juin 2015 à 16:42
jordane45 Messages postés 38453 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 mars 2025 - 16 juin 2015 à 16:42
A voir également:
- PHP-MYSQL fonction insert entre 2 tables
- Fonction si et - Guide
- Touche insert - Guide
- Tables des matières word - Guide
- Mysql community server - Télécharger - Bases de données
- 2 ecran pc - Guide
4 réponses
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 mars 2025
4 740
16 juin 2015 à 09:34
16 juin 2015 à 09:34
Bonjour,
Pourquoi ne fais tu pas simplement une requête SELECT pour aller chercher l'ID qui t'intéresse ?
Une fois récupéré.. tu pourras le mettre dans ta requête d'insertion...
pouvoir récupérer l'id d'une table LIST et l'insérer dans une ligne LIST_ID d'une table PRICE
Pourquoi ne fais tu pas simplement une requête SELECT pour aller chercher l'ID qui t'intéresse ?
Une fois récupéré.. tu pourras le mettre dans ta requête d'insertion...
Serzo
Messages postés
3
Date d'inscription
lundi 15 juin 2015
Statut
Membre
Dernière intervention
16 juin 2015
Modifié par jordane45 le 16/06/2015 à 15:43
Modifié par jordane45 le 16/06/2015 à 15:43
Bonjour Jordan,
Merci pour ta réponse!
J'ai donc fait des modifications, mais list_id est toujours égal à 0 et donc ne possède toujours pas l'id de la table liste :(
J'ai rajouté le SELECT mais je suis pas sûr de sa bonne forme, et je me demande quoi mettre à la place de "'.$this->list_id.'"
Si vous pouviez m'aider ça me serait très utile merci!
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
Merci pour ta réponse!
J'ai donc fait des modifications, mais list_id est toujours égal à 0 et donc ne possède toujours pas l'id de la table liste :(
J'ai rajouté le SELECT mais je suis pas sûr de sa bonne forme, et je me demande quoi mettre à la place de "'.$this->list_id.'"
public function insert(){ $bdd = Database::getInstance(); $sql = 'INSERT INTO price (description, single_price, list_id, user_id) SELECT id FROM list WHERE list.id = list_id VALUES ("'.$this->description.'", "'.$this->single_price.'", <bold>"'.$this->list_id.'"</bold>, '.$_SESSION['id'].')'; $bdd->exec($sql); return true; }
Si vous pouviez m'aider ça me serait très utile merci!
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 mars 2025
4 740
16 juin 2015 à 15:44
16 juin 2015 à 15:44
Je ne t'ai pas dit de faire un SELECT .... DANS ta requete INSERT ....
Je t'ai dit :
1 - TU FAIS UN SELECT
2 - Tu FAIS TON INSERT en y mettant le résultat de ton select.
Je t'ai dit :
1 - TU FAIS UN SELECT
2 - Tu FAIS TON INSERT en y mettant le résultat de ton select.
Serzo
Messages postés
3
Date d'inscription
lundi 15 juin 2015
Statut
Membre
Dernière intervention
16 juin 2015
Modifié par jordane45 le 16/06/2015 à 16:14
Modifié par jordane45 le 16/06/2015 à 16:14
Ah ok!
Alors là j'ai testé ça mais je mets comment le résultat de mon select dans l'insert into?
Alors là j'ai testé ça mais je mets comment le résultat de mon select dans l'insert into?
public function insert(){ $bdd = Database::getInstance(); $sql = 'SELECT id FROM list INSERT INTO price (description, single_price, list_id, user_id) VALUES ("'.$this->description.'", "'.$this->single_price.'", "'.$this->list_id.'", '.$_SESSION['id'].')'; $bdd->exec($sql); return true; }
jordane45
Messages postés
38453
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 mars 2025
4 740
Modifié par jordane45 le 16/06/2015 à 16:43
Modifié par jordane45 le 16/06/2015 à 16:43
.... toujours pas !
bon.. je vais te macher le travaille .....
NB .. bien entendu .. il te faut modifier le WHERE de la requete .. pour y mettre le champ qui te permet de savoir quel id tu veux récupérer.
bon.. je vais te macher le travaille .....
public function insert(){ $id = isset($_SESSION['id'])?$_SESSION['id']:NULL; $bdd = Database::getInstance(); $list_id = $this->getIdList($var); $sql = "INSERT INTO price (description, single_price, list_id, user_id) VALUES (:description,:single_price,:list_id,:id)"; $params=array(":description"=>$this->description,":single_price"=>$this->single_price,":list_id"=>$list_id,":id"=>$id); $prepare = $bdd->prepare($sql); $prepare->execute($params); return true; } public function getIdList($var){ $bdd = Database::getInstance(); $sql = "SELECT id FROM list WHERE tonchamp = :tavariable"; $params=array(":tavariable"=>$var); $prepare = $bdd->prepare($sql); $prepare->execute($params); //on stocke le résultat dans un array $result = $prepare->fetchall(); if($result){ //on en récupère l' ID $id = $result[0]['id']; }else{ $id=NULL; } return $id; }
NB .. bien entendu .. il te faut modifier le WHERE de la requete .. pour y mettre le champ qui te permet de savoir quel id tu veux récupérer.