Ankündigung

Einklappen
Keine Ankündigung bisher.

Eintrag in 2 tabellen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Eintrag in 2 tabellen

    Hi ich habe ein kleines problem.
    Ich habe 2 tabellen ind die etwas aus einem formular eingetragen werden soll.

    Bsp.:
    Tabelle1:

    na_id (auto) (bigint)
    name
    ort
    .
    .
    .


    Tabelle2 :
    ca_id (auto)
    na_id (da soll die von der anderen tabelle rein)
    sp
    .
    .
    .



    es ist eine 1:n beziehung also eine na_id aus tabelle 1 kann mehrere ca_id´s aus tabelle 2 haben.

    Wie bekomme ich beim eintragen in die tabellen die richtige na_id ?

    Ist der befehl dafür geeignet ? :
    mysql_insert_id


    Ich hab mal gehört das der befehl bei bigint nicht geht.
    Es muß vermieden werden das es vertauschungen gibt wenn sich 2 leute zur gleichen zeit eintragen.
    Es gibt sonnst auch keine eindeutige veziehung zur na_id.
    Das oben ist nur ein beispiel.


    Bitte helft mir.

    p.s.: ich habe schon in googel und im forum gesucht aber bin zublöd die richtigen suchbegrife einzugeben.
    Das Leben ist ein scheiß Spiel, aber die Grafik ist einfach geil

  • #2
    Hi Dragon26mFR,

    1. Wenn Du bei der 1. Tabelle die na_id der tabelle auf auto_increment gesetzt hast sollte sich bei jedem Eintrag der Wert der na_id um 1 erhöhen.
    2. Nach dem Eintrag der 1. Tabelle kannst du mit: "SELECT MAX(na_id) FROM Tabelle LIMIT 1"; die letzte na_id auslesen
    3. Die gelesene na_id wird in der 2. tabelle in die Spalte ca_id geschrieben, zusammen mit dem Rest der Daten. So lange bist die Daten abgearbeitet sind.

    Kommentar


    • #3
      Und was ist wenn sich 2 leute gleichzeitig eintragen ?
      Dann bekomme ich doch die falsche ID.

      Es gab doch auch mal sowas wie Last_Insert_id aber da war glaub das selbe broblem.
      Das Leben ist ein scheiß Spiel, aber die Grafik ist einfach geil

      Kommentar


      • #4
        mysql_insert_id() konvertiert den Typ der Rückgabe der nativen MySQL C API Funktion mysql_insert_id() in den Typ long (als int in PHP bezeichnet). Falls Ihre AUTO_INCREMENT Spalte vom Typ BIGINT ist, ist der Wert den mysql_insert_id() liefert, nicht korrekt. Verwenden Sie in diesem Fall stattdessen die MySQL interne SQL Funktion LAST_INSERT_ID() in einer SQL-Abfrage.
        Ich denke du meinst diese MySQl-Funktion?

        Kommentar


        • #5
          Und dort tritt das Problem nicht auf, da der Wert je Verbindung gespeichert wird.

          Kommentar


          • #6
            OK danke hoffe das funzt so wie es soll *g*
            War mir eben nicht sicher wie sich der befehl verhält wenn sich 2 gleichzeitig eintragen
            Das Leben ist ein scheiß Spiel, aber die Grafik ist einfach geil

            Kommentar

            Lädt...
            X