Richtiger Schlüssel in richtige Tabelle eintragen:)

Katzehuhn

Erfahrenes Mitglied
Ein neuer User registriert sich. Nun hab ich folgendes:

Der User muss einen Spielernamen, eine Rasse und eine Klasse auswählen. Nun läuft das wie folgt ab

zuerst wird das in die Tabelle eingetragen
bei der Tabelle koordinaten:
id_koordinaten = auto increment und Schlüssel
typ = Spieler
idfeld = 5
bild = Kämpfer(klasse)

nun folg die Tabelle Gruppen
gruppenid = auto increment u Schlüssel
fs_koordinaten = die id_koordinaten aus der oberen Tabelle koordinaten soll hier eingetragen werden.

zu guter letzt
Tabelle user
...user infos = halt passwort usw
fs_gruppenid = der Schlüssel aus der oberen Tabelle Gruppen.

Das Problem ist jetzt nur wie mach ich das am geschicktesten das auch immer der richtige Schlüssel eingetragen wird. Wenn ich mir immer den letzten Schlüssel raushohle ( DESC) ist es ja reintheoretisch möglich das da jemand den falschen bekommt. Ich könnte auch natürlich überall ein Feld dazugeben wo der Registrier Name drinnen steht u dannach Abfragen, aber das ist mir einwenig zu umständlich. Wer noch ne Möglichkeit kennt immer raus damit;) danke!
 
oha mysql hat ja ne ganze Menge drauf. Damit sollte es gehen, nur leider gibt der mir die ganze Zeit nur 0 aus. Wie muss der mysql_insert_id() Befehl auschauen? Einfach unter die Abfrage schreiben?
 
[phpf]mysql_insert_id[/phpf] muss direkt nach dem INSERT-Query ausgeführt werden.
Wenn Deine Auto-Increment-Spalte kein INT, sondern BIGINT oder sonstwas ist, must Du mit der MySQL-Funktion SELECT LAST_INSERT_ID() AS `LASTID` ein eigenes Query starten und mit [phpf]mysql_fetch_assoc[/phpf] auslesen.
Kurzes Beispiel mit der PHP-Funktion:
PHP:
mysql_query("INSERT INTO Tabelle1 ....");
$insID=mysql_insert_id();
mysql_query("INSERT INTO Tabelle2 SET FremdeID=".$insID.", ...");
Alternativ mit Query:
PHP:
mysql_query("INSERT INTO Tabelle1 ....");
$insID=mysql_fetch_assoc(
    mysql_query("SELECT LAST_INSERT_ID() AS `LASTID`"));
$insID=$insID['LASTID'];
mysql_query("INSERT INTO Tabelle2 SET FremdeID=".$insID.", ...");

Bevor Du Dir die letzte ID holst, solltest Du mit [phpf]mysql_affected_rows[/phpf] testen, ob tatsächlich erfolgreich eingetragen wurde.

Gruß hpvw
 
Zurück