Avatar billede nederbasse Nybegynder
09. juni 2004 - 10:36 Der er 11 kommentarer

Indsætte id i flere tabeller

hejsa
Jeg har tre tabeller i en mysql db: person, titel og group

person tabellen
------------------------
pers_id (autonummer)
name
phone
mail

titel tabellen
-------------------
titel_id (autonummer)
pers_id
titel

group tabellen
---------------------
grp_id (autonummer)
pers_id
group

Hvordan får jeg indsat pers_id i titel og group tabellen når jeg indsætter en ny person ?
Avatar billede jakobdo Ekspert
09. juni 2004 - 10:41 #1
Du kunne evt lave 3 kald til INSERT INTO...
Måske dette er den optimale løsning, men det virker! :o)
Avatar billede martinbk Nybegynder
09. juni 2004 - 11:15 #2
en simpel realisering af jakobdo's forslag ville nok være noget alla:

mysql_query("INSERT INTO person (name, phone, mail) VALUES('$name','$phone','$mail')");
$lastID = mysql_insert_id();
mysql_query("INSERT INTO titel (pers_id VALUES('$lastID')");
mysql_query("INSERT INTO group (pers_id) VALUES('$lastID')");

en anden metode kunne jo være at ændre database strukturen til at benytte foreign keys (kræver MySQL 5.0 <) men det er for mig en større operation, som jeg tror du vil få mere ud af at spørge om i database kategorien, men ovenstående PHP kode burde også kunne gøre det :)
Avatar billede thb Nybegynder
09. juni 2004 - 11:16 #3
Du laver den første: mysql_query("INSERT INTO person (name,phone,mail) VALUES ('værdi','værdi','værdi')");
$id = mysql_insert_id();

Den er anden og tredje er så:

mysql_query("INSERT INTO tabelnavn (pers_id,felt2) VALUES(". $id .",'værdi')");

Håber at du kan bruge det...

Thomas
Avatar billede thb Nybegynder
09. juni 2004 - 11:18 #4
Damn... :D Jeg var for langsom.. hehe
Avatar billede nederbasse Nybegynder
14. juni 2004 - 09:39 #5
Desværre det kan jeg ikke få til at virke, jeg har prøvet at indsætte i group med denne kode:

$grp = $_REQUEST["grp"];
$name = $_REQUEST["name"];
XXXXXXXXXX
$conn = mysql_connect("localhost", "xxxxxx", "xxxxxx");
mysql_select_db("euroxy");
  mysql_query("insert into person (grp, name, xxxxxx)
VALUES ('$grp', '$name', xxxxxx')") or die ("Lortet virker ikke");

$lastID = mysql_insert_id();
mysql_query("INSERT INTO group (pers_id VALUES('$lastID')");
// mysql_query("INSERT INTO title (pers_id) VALUES('$lastID')"); //
Avatar billede Slettet bruger
16. juni 2004 - 09:35 #6
Prøv at bruge mysql_error() i stedet for "Lortet virker ikke" i din die() - Det er meget lettere at finde fejl, nå man får en ordentlig fejlbesked.
Avatar billede nederbasse Nybegynder
17. juni 2004 - 13:35 #7
Ingen fejl der kommer bare ikke noget i group tabellen
Avatar billede Slettet bruger
17. juni 2004 - 13:41 #8
Den kode, du har vist os SKAL komme med en fejl, for du mangler en ' før den sidste værdi i din insert. Men det ligner nu også en "skjule hemmeligheder"-kode.
Avatar billede thb Nybegynder
17. juni 2004 - 14:47 #9
Du har udkommenteret den rigtige insert query helt nederst..

Thomas
Avatar billede thb Nybegynder
17. juni 2004 - 14:48 #10
Det her burde hvertfald virke:

mysql_query("INSERT INTO group (pers_id) VALUES ('".$lastID."')");

Thomas
Avatar billede jakobdo Ekspert
19. september 2005 - 14:45 #11
Lukketid?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester