Sarah: PHP/MySQL Eintrag in Zwischentabelle

Hallo

Ich habe vereinfacht folgende Tabellen: Adresse (Inhalt a_id, a_vorname, a_nachname), Ort (Inhalt o_id, o_plz, o_name) und adresse_ort (a_id, o_id).

Nun möchte ich mittels PHP ein Formular erstellen bei dem man eine neue Adresse hinzufügen kann und der dazugehörige Ort (über eine Dropdownliste, mit der o_id als value) bestimmen kann.

Mein Problem ist nun das Speichern in die Zwischentabelle adresse_ort. Wie finde ich nun die letzte ID heraus? Mit der Funktion last_insert_id() kann ich mich nicht so anfreunden, da es für mehrere Benutzer sein soll. Oder wie gehe ich vor?

Grüsse
Sarah

  1. Hiho

    Ich habe vereinfacht folgende Tabellen: Adresse (Inhalt a_id, a_vorname, a_nachname), Ort (Inhalt o_id, o_plz, o_name) und adresse_ort (a_id, o_id).

    warum ist die Ortid nicht an der Adresse dran? Nach deinem Datenmodell kann eine Adresse zu mehreren Orten gehören. Soll das so sein?

    Mein Problem ist nun das Speichern in die Zwischentabelle adresse_ort. Wie finde ich nun die letzte ID heraus? Mit der Funktion last_insert_id() kann ich mich nicht so anfreunden, da es für mehrere Benutzer sein soll.

    wo genau ist das Problem? In deine Überlegungen hat sich ein Konzeptfehler eingeschlichen.

    Gruß
    Wurf

  2. echo $begrüßung;

    Mein Problem ist nun das Speichern in die Zwischentabelle adresse_ort. Wie finde ich nun die letzte ID heraus? Mit der Funktion last_insert_id() kann ich mich nicht so anfreunden, da es für mehrere Benutzer sein soll.

    last_insert_id() ermittelt nicht etwa den größten ID-Wert einer Tabelle, sondern merkt sich den bei einem vorangegangenen INSERT-Statement per auto_increment erzeugten Wert, und das auch noch verbindungsabhängig. Andere Clients in eigenen Verbindungen beeinflussen das Funktionsergebnis nicht:

    The value of mysql_insert_id() is affected only by statements issued within the current client connection. It is not affected by statements issued by other clients.

    echo "$verabschiedung $name";