Insertion avec mysql
salut à tous!!!
c'est encore moi!!
comment faire pour insérer des données dans une bd quand il y a plusieurs tables???
c'est encore moi!!
comment faire pour insérer des données dans une bd quand il y a plusieurs tables???
23 réponses
-
merci pour ton aide !!! désolé de prendre tout ton temps!!! mais c pas de ma faute si j'y comprend rien!!! maintenant, j'ai le cervaeu tout emmellé!!!
autrement j'ai mysql comme bd, si c'est ça que tu souhaite savoir!!!
encore merci pour ton aide!!! -
loulou : je veux bien t'aider, mais là, je fais tout à ta place.
Je pense que j'en ai déjà fait beaucoup. Et je ne peux pas te consacrer tout mon temp.
Il est temps pour toi de te rediriger vers http://www.php.net ou http://www.phpdebutant.org (plus accessible) pour te documenter un peu sur PHP (ou tout autres sites).
Ma dernière aide sera qu'il faut que tu récupères les identifiants quelques part, probablement dans la base avec un SELECT, mais je ne vois pas comment vu que je ne sais pas ce que tu as.
Bonne chance pour la suite.
A+
-= Bobinours - http://bobin.underlands.org =- -
sympat de me lacher comme ça!!!!!!!!!!
-
kooooooiiiiiiii!!!!!!!!!!!!
-
-
ah zut!!! va yavoir un pb vu que les id qui sont définis auparavant sont enregistré lors du remplissage de la bd!!! ça complique tout!!!
-
et comment ça marche pour la derniere requete??
-
-
et s'il ya deux sortes d'identifiants....cad, il ya des identifiants définis auparavant et d'autres non définis???
-
Dans ce cas, c'est encore plus simple :
// On définit les ID
$ID1 = "101";
$ID2 = "651";
$Requete_SQL1 = "INSERT INTO Table1 (ID, nom, email) VALUES ('". $ID1 ."', '" . $nom . "', '" . $email . "')";
mysql_query($Requete_SQL1);
$Requete_SQL2 = "INSERT INTO Table2 (ID, message) VALUES ('". $ID2 ."', '".$message."')";
mysql_query($Requete_SQL2);
$Requete_SQL3 = "INSERT INTO Table3 (ID_table1, ID_table2) VALUES ('".$ID1."','".$ID2."')";
mysql_query($Requete_SQL3);
-= Bobinours - http://bobin.underlands.org =- -
merci, je comprends mieux!!! par contre mes champs ne peuvent pas etre en autoincrement parce que les numéros serons déja définis auparavant. comment ça marche dans ce cs??
-
Aïe...
J'ai l'impression que les codes que j'écris ne servent à rien.
Non, la table 3 n'a aucun rapport. Il faut préciser que l'on veut faire une insertion dans cette table d'où mon :
$Requete_SQL3 = "INSERT INTO Table3 (ID_table1, ID_table2) VALUES ('".$ID1."','".$ID2."')";
mysql_query($Requete_SQL3);
$ID1 et $ID2 ayant étaient récupérés au préalable.
-= Bobinours - http://bobin.underlands.org =- -
Car pour les ID en AUTO-INCREMENT, il faut insérer NULL comme valeur de ce champ. MySQL va prendre le dernier indice qu'il a rentré précédemment et lui ajouter 1, tout ça automatiquement.
S'il te manque des documentation à ce sujet, va voir le site de http://www.mysql.com
-= Bobinours - http://bobin.underlands.org =- -
est-ce que si j'insere une donnée dans la table 1 et une autre dans la table 2 ; est-ce quelles seront insérées automatiquement dans la 3° table?
-
je ne vois pas comment ça va s'y retrouver dans les ID?
-
je comprends pas pourquoi tu met ça :
" Lors de l'insertion, on aura juste à lui passer une valeur NULL pour que MySQL s'occupe du reste. " -
L'insertion n'a rien à voir avec plusieurs tables (comme les jointures).
Cependant, si tu veux récupérer les identifiants insérés, pour les lier dans une 3ème table, il te faut utiliser : http://php3.de/manual/fr/html/function.mysql-insert-id.html
En règle générale, pour chaque table, on utilise un champ ID qui est AUTOINCREMENT afin de ne pas s'occuper de sa valeur.
Lors de l'insertion, on aura juste à lui passer une valeur NULL pour que MySQL s'occupe du reste.
Ne connaissant donc pas sa valeur, il faut la récupérer grace à mysql_insert_id().
Tu fais une requête, tu récupères l'ID 1, tu fais la seconde requête, tu récupères l'ID 2
Et enfin, tu fais une troisième requête en insérant ID1 et ID2 dans la table relation.
Pour reprendre l'exemple ce dessus :
$Requete_SQL1 = "INSERT INTO Table1 (ID, nom, email) VALUES (NULL, '" . $nom . "', '" . $email . "')";
mysql_query($Requete_SQL1);
$ID1 = mysql_insert_id();
$Requete_SQL2 = "INSERT INTO Table2 (ID, message) VALUES (NULL, '".$message."')";
mysql_query($Requete_SQL2);
$ID1 = mysql_insert_id();
$Requete_SQL3 = "INSERT INTO Table3 (ID_table1, ID_table2) VALUES ('".$ID1."','".$ID2."')";
mysql_query($Requete_SQL3);
-= Bobinours - http://bobin.underlands.org =- -
bon ben on va compliquer un peu plus!!! mes deux tables ne sont pas reliées directement. en fait, c'est une autre table qui les relient!!
-
Bon...
En partant du formulaire du lien, tu as 3 champs : Nom, Email et Message.
Je désire insérer Nom et Email dans une table 1 et Message dans une table 2.
Je me connecte à la base : http://www.php.net/manual/fr/function.mysql-connect.php
Je choisi la base : http://www.php.net/manual/fr/function.mysql-select-db.php
Je fais la première requête :
$Requete_SQL1 = "INSERT INTO Table1 (nom, email) VALUES ('" . $nom . "', '" . $email . "')";
mysql_query($Requete_SQL1);
$Requete_SQL2 = "INSERT INTO Table2 (message) VALUES ('".$message."')";
mysql_query($Requete_SQL2);
Et voila.
-= Bobinours - http://bobin.underlands.org =- -
ben je veux faire la meme chose mais avec des données à insérer dans plusieurs tables!!! mais je vois pas comment faut faire!!
- 1
- 2
Suivant