WHERE AID=ID....Wie kann ich den Wert übernehmen?
Jürgen
- php
0 André Laugks0 Jürgen0 Klaus Mock0 Andreas
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
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
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);
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
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
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