auto_increment - Wert herausbekommen??? ( PHP + MYSQL)
elosh
- php
Hallo Leute,
und zwar hab ich folgendes Problem:
Ich habe 2 Tabellen( Author + Person). Beide werden nach dem Ausfüllen eines Formulars gefüllt.
Nun möchte ich aber irgendwie das ID aus Person (ist auf auto_increment gesetzt) gleich person_id in Author ist.
Wie geht das????????
Ich kann doch erst nach dem submit an die ID rankommen.
Hilfe!!!!!!
Gruss elosh
Hi!
Ich habe 2 Tabellen( Author + Person). Beide werden nach dem Ausfüllen eines Formulars gefüllt.
Nun möchte ich aber irgendwie das ID aus Person (ist auf auto_increment gesetzt) gleich person_id in Author ist.
Wie geht das????????
Ich kann doch erst nach dem submit an die ID rankommen.
Sehe Dir mal folgende Funktion an: http://de3.php.net/mysql-insert-id
Und bookmarke Dir das Manual (http://de3.php.net/) fürs nächste mal ;-)
Grüße
Andreas
Hi!
Und bookmarke Dir das Manual (http://de3.php.net/) fürs nächste mal ;-)
besser [http://de3.php.net/manual/de]
Grüße
Andreas
ich dank dir, aber irgenwie komm ich doch net wirklich weiter.
Also, dat ist mein Code:
for($i=1; $i<count($HTTP_POST_VARS); $i++)
{
if ($HTTP_POST_VARS['surname'.$i]=="")
{
break;
}
$querypp="INSERT INTO person VALUES ('";
$querypp.="0','"; //auto inkrement
$querypp.="0','"; //$person_ID
$querypp.="0','"; //$paper_ID
$querypp.="0','"; //$contact_ID
$querypp.=$HTTP_POST_VARS['surname'.$i];
$querypp.="','";
$querypp.=$HTTP_POST_VARS['name'.$i];
$querypp.="','";
$querypp.=$HTTP_POST_VARS['email'.$i];
$querypp.="','";
$querypp.=$HTTP_POST_VARS['institution'.$i];
$querypp.="','";
$querypp.="0','";
$querypp.="0','";
$querypp.="0";
$querypp.="')";
$querypp.=";";
print $querypp;
}
Jetzt soll, wenn der nächste Teil ausgeführt wird, die ID gleich eingetragen werden:
for($i=1; $i<count($HTTP_POST_VARS); $i++)
{
if ($HTTP_POST_VARS['surname'.$i]=="")
{
break;
}
$queryat="INSERT INTO author VALUES ('";
$queryat.="0','"; //auto inkrement
$queryat.="0','"; //$person_ID
$queryat.="0','"; //$paper_ID
$queryat.="0','"; //$contact_ID
$queryat.=$HTTP_POST_VARS['pcMember'.$i];
$queryat.="','";
$queryat.="0"; //registration
$queryat.="');";
print $queryat;
}
while ( list ( $key, $value ) = each ( $HTTP_POST_VARS ) ) {
echo "<b>$key</b> : $value<br>";
}
mysql_query($queryat)
or die("<b>Query at failed!</br>");
muss ich nicht vorher submitten?
Halihallo elosh
ich dank dir, aber irgenwie komm ich doch net wirklich weiter.
Du denkst IMHO zu kompliziert.
Jetzt soll, wenn der nächste Teil ausgeführt wird, die ID gleich eingetragen werden:
Also: beim "ersten Teil" liest du die generierte ID wie Andreas es beschreibt aus,
übergibst diese dem "zweiten Teil" (ob es nun ein völlig anderes Script, ein völlig neuer
Prozess, oder im selben Prozess ist, ist völlig irrelevant, denn dies hat nur
Auswirkungen darauf, wie du die Parameter übergeben musst und das ist eine _andere
Frage_).
muss ich nicht vorher submitten?
Das kannst alleine du entscheiden, denn du legst fest, wie das Programm laufen soll.
Was ich dir jedoch an Wissen mitgeben darf ist, dass die letzte ID nur solange existent
ist, wie die Verbindung zur Datenbank besteht. Trennst du die Verbindung (z.B. wenn das
Script beendet ist), ist die "letzte ID" verloren. Folglich: Egal, ob submit oder nicht:
die ID wird stets _gleich nach dem INSERT_ ausgelesen und wird dann an weitere INSERTS,
UPDATES, Programme etc. weitergeleitet (falls du einen neuen Prozess startest [z.B. indem
du "submittest"], musst du die ID eben über einen Parameter weitergeben).
Viele Grüsse
Philipp