kostenloser Webspace werbefrei: lima-city


Problem bei 1 zu n beziehung

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    sirferguson

    sirferguson hat kostenlosen Webspace.

    Hallo miteinander

    ich muss für die Schule eine Spesenabrechnung mit PHP und MySQL erstellen und stosse auf folgendes Problem:

    Ich habe einerseits die Tabelle Spesenkopf in der Datum, Mitarbeier usw gespeichert werden:

    id_spesenkopf
    datum
    genehmigung
    auszahlung
    mitarbeiter_id

    und die Tabelle Spesenposition in der dann die Art, Betrag und die id_spesenkopf als Fremdschlüssel gespeichert wird

    id_spesenposition
    spesenart
    spesenkopf_id
    betrag

    Da dies laut Schule eine 1-n beziehung ist, weiss ich nun nicht wie ich das beim einfügen der Daten in die Datenbank realisieren soll.
    Wenn ich die Werte in den Spesenkopf schreibe und anschliessend in die Spesenposition weiss ich dort ja nicht welche spesenkopf id ich einfügen muss.

    Oder verstehe ich das ganze von Grund auf falsch?

    Danke im Voraus!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Die id_spesenkopf ist wahrscheinlich auto_increment, oder? Dann nutzt du einfach PDO::lastInsertId. (Vorrausgesetzt du nutzt PDO. Bei mysql_ gibt es mysql_insert_id.)

    Beitrag zuletzt geändert: 14.6.2010 16:30:44 von nikic
  4. schrotti12

    Moderator Kostenloser Webspace von schrotti12

    schrotti12 hat kostenlosen Webspace.

    Also ich habs damals so gelöst, dass ich zuerst, ich machs jetzt mit deinem Fall, die Kopf-Zeile eingefügt und diese gleich wieder ausgelesen habe...
    Da das bei mir nicht so einfach war, hab ich noch ein zusätzliches key-Feld mitgenommen, in dem ein temporärer key gespeichert wurde über welchen ich die id im Script wieder ausgelesen habe.

    Also:

    1. Kopf mit Zusatz-Key einfügen.
    2. Über den Key den Kopf wieder auslesen.
    3. ID des Kopfs ist nun vorhanden und kann in die Positionen eingefügt werden.

    Vieleicht nicht die eleganteste Lösung, funktioniert aber...
  5. Entweder du nutzt die Funktion mysql_insert_id() in PHP, nachdem du den INSERT-Befehl des Kopfsatzes ausgeführt hast.
    Oder du Selektierst nach dem INSERT die max(id_spesenkopf) aus der Datenbank (so sollte das dann aussehen: SELECT max(id_spesenkopf) FROM Spesenkopf LIMIT 0,1)

    LG sneppa
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!