SQL -IDs in eine neue Tabelle speichern

dingo

Grünschnabel
Hallo
Also ich folgens Problem
Zuerst mal mein Datenbank SQL
1.Tabelle Person
pers_id int 4 (Ja (nicht zur Replikation))PS
....
....
....
-----------
2.Tabelle Geraete
ger_id int 4 (Ja (nicht zur Replikation))PS
....
....
....
------
2.Tabelle zusammen
zusammen_id int 4 (Ja (nicht zur Replikation))PS
pers_id int 4 Fs(Person)
ger_id int 4 Fs(Geraete)
....
....
....
-----
So mein Problem ist ich will in meinen Insert von der
Tabelle 1 (pers_id)und Tabelle 2 (ger_id)in die Tabelle 3
(pers_id)(ger_id)speicher lassen ich weis das es mit demm befehl (LAST_INSERT_ID())
mein insert;

Code:
$sql = "INSERT INTO Person (titel,name,vorname,firma,adresse,ort,plz,telefon,mobile,fax,email)
VALUES ('{$titel}','{$name}','{$vorname}','{$firma}','{$adresse}','{$ort}','{$plz}','{$telefon}','{$mobile}','{$fax}','{$email}')";
  $rs = $db->Execute($sql);
$sqll = "INSERT INTO Geraete (ltdNr,IdentNr,DPCname,IPadresse,geraetetyp,garantie)
    VALUES ('{$ltdNr}','{$IdentNr}','{$DPCname}','{$IPadresse}','{$geraetetyp}','{$garantie}')";
        $rs = $db->Execute($sqll);
Wie mach ich das am besten
 
Versuch's mal so:
PHP:
INSERT INTO zusammen (pers_id, name, ger_id, DPCname) VALUES ((SELECT pers_id, name FROM Person WHERE pers_id = 1),(SELECT ger_id, DPCname FROM Geraete WHERE ger_id = 1))
Statt der 1 muss natürlich deine jeweils richtige ID [z.B. -> LAST_INSERT_ID()] da rein...:)
 
Danke für deine schnelle Antwort.
Kann das so sein wenn ja er trägt aber bei zusammen in der tabelle leider nichts ein.

SQL:
$sql = "INSERT INTO Person (titel,name,vorname,firma,adresse,ort,plz,telefon,mobile,fax,email)
									VALUES('{$titel}','{$name}','{$vorname}','{$firma}','{$adresse}','{$ort}','{$plz}','{$telefon}','{$mobile}','{$fax}','{$email}')";
$db->Execute($sql);
$sql = "INSERT INTO Geraete (ltdNr,IdentNr,DPCname,IPadresse,geraetetyp,garantie) VALUES ('{$ltdNr}','{$IdentNr}','{$DPCname}','{$IPadresse}','{$geraetetyp}','{$garantie}')";
$db->Execute($sql);
$sqll = "INSERT INTO zusammen (pers_id, name, ger_id, DPCname) VALUES ((SELECT pers_id, name FROM Person WHERE pers_id =pers_id->LAST_INSERT_ID()),(SELECT ger_id, DPCname FROM Geraete WHERE ger_id = ger_id->LAST_INSERT_ID()))";]
 
Nein, ich habe nicht gemeint, dass du "ger_id->LAST_INSERT_ID()" da reinschreiben sollst.
So einen Zuweisungspfeil kennt SQL nicht (wäre mir zumindest neu :-) ).
Ich meinte doch nur, dass du dort deine Bedingung, welchen Datensatz du bearbeiten willst, eintragen solltest.
In deinem Falle wird es wohl immer nur der mit der letzten Insert-ID sein.
Also trägst du die da auch ein - den Befehl scheinst du dafür ja schon zu kennen. :)
 
Er meint es so:
PHP:
$sql = "INSERT INTO Person (titel,name,vorname,firma,adresse,ort,plz,telefon,mobile,fax,email) VALUES '{$titel}','{$name}','{$vorname}','{$firma}','{$adresse}','{$ort}','{$plz}','{$telefon}','{$mobile}','{$fax}','{$email}')";
$db->Execute($sql);
$sql = "INSERT INTO Geraete (ltdNr,IdentNr,DPCname,IPadresse,geraetetyp,garantie) VALUES ('{$ltdNr}','{$IdentNr}','{$DPCname}','{$IPadresse}','{$geraetetyp}','{$garantie}')";
$db->Execute($sql);
$sqll = "INSERT INTO zusammen (pers_id, name, ger_id, DPCname) VALUES ((SELECT pers_id, name FROM Person WHERE pers_id =LAST_INSERT_ID()),(SELECT ger_id, DPCname FROM Geraete WHERE ger_id = ger_id->LAST_INSERT_ID()))";
 
Jo so hatte ich das auch schon gemacht aber er schreibt leider nichts in meine 3Tabelle (zusammen) ein.
 
Zurück