Mailinglisten-Archive |
Hallo! Ich lasse vom Benutzer über ein Formular neue Einträge in eine MySQL-Tabelle vornehmen - geschieht natürlich über PHP. Allerdings benötige ich zu einem neuen Eintrag auch noch mindestens einen Eintrag in einer zweiten Tabelle - wahrscheinlich nichts ungewöhnliches. In der ersten Tabelle (tabelle_1) bekommt der Eintrag eine id (int, unique, auto_increment) und den ganzen Daten-Rest. In der zweiten Tabelle (tabelle_2) werden erstens die gerade frisch vergebene id (int) aus tabelle_1 und außerdem wiederum weitere Daten eingegeben. Kann man irgendwie besonders elegent erfahren, welche id eben in tabelle_1 vergeben wurde? Meine mir etas komisch erscheinende Lösung ist, daß ich zunächst den Eintrag wie folgt in tabelle_1 erzeuge... $sql = "INSERT INTO tabelle_1 (titel,txt) VALUES '$titel','$txt')"; $result = mysql_query($sql); ...dann einen select wie nachstehend abschicke und mir die id hole... $sql = "SELECT * FROM tabelle_1 WHERE titel='$titel' AND txt='$txt'"; $result = mysql_query($sql); $myrow = mysql_fetch_array($result); $entryID = $myrow["id"]; ... um damit neue einträge in tabelle_2 anzulegen wie $sql = "INSERT INTO tabelle_2 (entryID,sonstwas) VALUES ('$entryID','$sonstwas')"; $result = mysql_query($sql); Heißt: Ich will den Primarschlüssel aus tabelle_1 in tabelle_2 als Fremdschlüssel. Mit meiner SELECT-Methode überlasse ich es jedoch dem Zufall, ob nicht gerade zwei Einträge mit demselben Inhalt in titel und beschreibung vorhanden sind, denn die sind beide nicht unique. Das ist zwar unwahrscheinlich, aber natürlich keineswegs sauber. Ach ja, noch was: Wie läßt man sich denn wirklich clever einen _einziges_ Feldinhalt aus der Datenbank geben? Das immer mit mysql_fetch_array() bzw. ...row zu machen, ist doch sicher auch nicht die feine englische Art, oder? Wißt ihr einem db-newbie zu helfen? Danke! Marian
php::bar PHP Wiki - Listenarchive