88871
Goto Top

Php mysql Mehrere Einträge in die DB gleichzeitig und miteinander verbinden

Frage wie ihr sowas in php und mySQL löst. Relationale Verbindungen

Hallo. Frage mal nach Lösungsvorschlägen und wie Ihr das in etwa so macht. Es geht um den Lösungsweg, technisch gesehen. Wer Code tippen will, nur zu face-smile Aber Ideen reichen mir auch.


Was mache ich: Ich trage ein Formular in 2-3 Tabellen. Die Tabellen sind in der gleichen DB. mySQL.

Tabelle1: Ich habe ein Seminar. Das trage ich ein. (die id vom Eintrag erstellt die db ist INTeger und auto_increment, wie üblich.)

Tabelle2: In die nächste Tabelle schreibe ich Tage im Unixformat ein. (die id vom Eintrag erstellt die db ist INTeger und auto_increment, wie üblich.)

Tabelle3: In die dritte Tabelle schreibe ich Text, etc hinein. (die id vom Eintrag erstellt die db ist INTeger und auto_increment, wie üblich.)


Mein Formular macht nun folgendes, resp will und muss ich:
1. Schreibe Titel etc in Tabelle 1.
2. Schreibe Tage in Tabelle 2, hole mir die [id] vom Eintrag aus Punkt1 oben. <-- Wie hole ich mir die soeben eingetragene ID
3. Schreibe den Text in Tabelle3, hole mir die [id] vom Eintrag aus Punkt2 oben. <-- Wie hole ich mir die soeben eingetragene ID


Beim Speichern und auch nacher zum Auslesen brauche ich ja eine Verbindung damit ich bei einer Anzeige die Tage habe, den Titel und sonstiges. Darum will ich die Einträge in den 3 Tabellen anhand der IDs verbinden.

Es sollte auch alles in einem Durchgang gespeichert werden.


Ideen von mir (Ohne gleich die IDs zu holen):

1. Eine Idee wäre von mir z.b. eine Zufallszahl die sich auch in jeden Eintrag einträgt. Eine Random Number, 8stellig z.b. Die Wahrscheinlichkeit wäre klein das ich mal die selbe erwische. Oder Grenze das wieder aus indem ich vorher "Nachschlage" ob die Nummer schon extistiert, wenn ja, neue generieren.

2. Die User loggen sich mit Session ein. Aber die Session da reinzutragen macht auch keinen Sinn.

Content-Key: 173240

Url: https://administrator.de/contentid/173240

Printed on: April 16, 2024 at 08:04 o'clock

Member: nxclass
nxclass Sep 16, 2011 at 12:09:39 (UTC)
Goto Top
Hi,
nach dem ersten INSERT die ID mit LAST_INSERT_ID() auslesen und in eine Variable zwischenspeichern.
SET @mylastid = LAST_INSERT_ID();
... dann kannst du in den kommenden Anweisungen diese Variable nutzen.
INSERT ... `id` = @mylastid ... ;
Mitglied: 88871
88871 Sep 16, 2011 at 12:12:29 (UTC)
Goto Top
hi nxclass....

Wenn 2 gleichzeitig was speichern (Müsste sehr dumm laufen.....) wäre es nicht optimal oder ?

Das Formular brauchen 1-2 Leute....aber wahrscheinlich nie gleichzeitig. Werden auch nie 100 benutzen.....also die Lösung finde ich elegant, Danke
Member: Dirmhirn
Dirmhirn Sep 16, 2011 at 12:21:37 (UTC)
Goto Top
HI!

sieh dir die insert_id() funktion von PHP an:
http://at2.php.net/manual/en/mysqli-stmt.insert-id.php

sg Dirm
Mitglied: 88871
88871 Sep 16, 2011 at 12:36:07 (UTC)
Goto Top
Thanks an Euch! Sofern ich den mySQL Befehl gleich nach dem Schreiben benutze, gibt es auch keine Falschabfrage face-smile

Problem, resp Lösungsweg gelöst.