Jürgen: WHERE AID=ID....Wie kann ich den Wert übernehmen?

Hallo!

Ich hab diese Frage schon mal gestellt jedoch konnte niemand drauf antworten, und leider hatte ich auch einen Fehler in meiner Fragestellung wodurch es wohl schwer wurde es zu verstehen.

Ich versuche es jetzt nochmal auf die einfachste Art und Weise (damit mir nicht wieder ein Fehler passiert).

Eine MySQL Datenbank mit 2 tabellen.
-------
1 Tabelle heisst Authors und hat 2 Reihen
-----
1 Reihe heisst ID (INT, primary key, auto_increment)
2 Reihe heisst Name (VARCHAR, 100)

------
2 Tabelle heisst Message und hat 3 Reihen
------
1 Reihe heisst ID (INT, primary key, auto_increment)
2 Reihe heisst AID (INT)
3 Reihe heisst Message_Text (TEXT)

***********

So nun mein problem.
Über ein Formular können Besucher ihren Namen und einen Text eingeben, dieses wird dann in der Datenbank in den jeweiligen Feldern abgespeichert.

$sql = "INSERT INTO Message SET " . "Message_Text='$message'";
$sqll = "INSERT INTO Authors SET " . "Name='$name'"; usw..

So jetzt mein Problem. Wie kann ich dafür sorgen das in die Message.AID die gleiche Zahl(INT) reinkommt wie in der Authors.ID?
Die müssen gleich sein weil sonst geht ja die relation verloren und ich kann dann meine Abfrage die so aussieht vergessen:

$result=mysql_query("select Message_Text, Name FROM Message, Authors WHERE AID=Authors.ID ORDER BY Message.ID DESC");

Klar kann ich per Hand die relation erzeugen indem ich einfach den Wert von der Authors.ID in die Message.AID eingebe, aber das kann doch wohl nicht so gedacht sein.

Ich wäre sehr dankbar wenn mir da mal jemand helfen könnte. Ich versuche schon seit 2 Tagen eine Lösung zu finden, leider erfolglos.

Vielen Dank schon mal im voraus!

Liebe Grüße aus Wien,

Jürgen

  1. Hallo!

    Eine MySQL Datenbank mit 2 tabellen.

    1 Tabelle heisst Authors und hat 2 Reihen

    1 Reihe heisst ID (INT, primary key, auto_increment)
    2 Reihe heisst Name (VARCHAR, 100)


    2 Tabelle heisst Message und hat 3 Reihen

    1 Reihe heisst ID (INT, primary key, auto_increment)
    2 Reihe heisst AID (INT)
    3 Reihe heisst Message_Text (TEXT)

    ***********

    So nun mein problem.
    Über ein Formular können Besucher ihren Namen und einen Text eingeben, dieses wird dann in der Datenbank in den jeweiligen Feldern abgespeichert.

    $sql = "INSERT INTO Message SET " . "Message_Text='$message'";
    $sqll = "INSERT INTO Authors SET " . "Name='$name'"; usw..

    So jetzt mein Problem. Wie kann ich dafür sorgen das in die Message.AID die gleiche Zahl(INT) reinkommt wie in der Authors.ID?
    Die müssen gleich sein weil sonst geht ja die relation verloren und ich kann dann meine Abfrage die so aussieht vergessen:

    Du trägst in die Tabelle "Authors" den Autor ein. Dann holst Du Dir die zuletzt vergebene ID mit mysql_insert_id().

    $con = mysql_connect(...);

    $sql_authors = "INSERT INTO Authors (Name) VALUES ('$name')";
    mysql_query($sql_authors, $con);

    $last_id = mysql_insert_id($con);

    $sql_message = "INSERT INTO Message (AID, Message_Text) VALUES ($last_id, '$message')";
    mysql_query($sql_message, $con);

    http://www.php.net/manual/de/function.mysql-insert-id.php

    MfG, André Laugks

    1. Hallo!

      Hi!

      Du trägst in die Tabelle "Authors" den Autor ein. Dann holst Du Dir die zuletzt vergebene ID mit mysql_insert_id().

      $con = mysql_connect(...);

      $sql_authors = "INSERT INTO Authors (Name) VALUES ('$name')";
      mysql_query($sql_authors, $con);

      $last_id = mysql_insert_id($con);

      $sql_message = "INSERT INTO Message (AID, Message_Text) VALUES ($last_id, '$message')";
      mysql_query($sql_message, $con);

      http://www.php.net/manual/de/function.mysql-insert-id.php

      Yeehaa! Ich danke dir, woher konnte ich den wissen das es dafür eine Funktion gibt? Arf, hätte ich das nur schon 2 tage früher gewusst. Und es kann mir ja wohl auch niemand sagen RTFM (den die ist ja nicht grad in ein paar Tagen zu lesen :P ).

      Nochmals Vielen Dank!

      Schöne Grüße,

      Jürgen

      1. Hallo,

        Yeehaa! Ich danke dir, woher konnte ich den wissen das es dafür eine Funktion gibt?

        Durch intensives Studium der Dokumentation;-)

        Und es kann mir ja wohl auch niemand sagen RTFM (den die ist ja nicht grad in ein paar Tagen zu lesen :P ).

        Na ja, wenn Du meinst, daß PHP oder mySQL [1] in ein paar Tagen zu bewältigen ist, dann fürchte ich, daß Du schwer auf dem Holzweg bist.

        Allerdings bieten die meisten Dokumentationen auch einen recht gut strukturierten Referenz-Teil, in dem Du problemorientiert nachschlagen kannst.

        Nur lesen und nachschlagen nimmt DIr auf Dauer keiner ab.

        Viel Spaß noch beim Lesen

        Klaus

        [1] oder irgendein anderes halbwegs komplexes Programm

        1. Hallo,

          Yeehaa! Ich danke dir, woher konnte ich den wissen das es dafür eine Funktion gibt?

          Durch intensives Studium der Dokumentation;-)

          Oder indem man sich einfach die Antworten zu seinen Fragen anschaut </?m=46829&t=8459>...

          Gruß
          Andreas