dwex
Erfahrenes Mitglied
Hallo Leute,
mein Quellcode macht zwar keine Fehler - aber ich bin mir nicht ganz sicher ob das gewollte passiert - habe mit Lock Tables noch nie gearbeitet.
Zur Erklärung:
Ich übergebe aus einem Formular Benutzerdaten (also Name, Adresse, Tel, etc.) und speicher das ganze in die MySQL-Tabelle "kunden". Die Tabelle hat einen auto-increment-wert (id) und eine (int) für kundennummer - das nur vorweg ich kann die Kundennummer aus div. Gründen nicht auto-increment machen.
Bevor ich nun den neuen Kunden in die DB eintrage frage ich aus der Tabelle Kunden mit Select die letzte (größte) Kundennummer ab und zähle eins dazu. Dann trage ich die Daten mit der um 1 erhöhten Kundennummer in die Datenbank ein.
Jetzt habe ich mir folgendes gedacht:
Meine Frage dazu - ist das so richtig wie ich das mache?
Vielen Dank für euer Rückinfos!
mein Quellcode macht zwar keine Fehler - aber ich bin mir nicht ganz sicher ob das gewollte passiert - habe mit Lock Tables noch nie gearbeitet.
Zur Erklärung:
Ich übergebe aus einem Formular Benutzerdaten (also Name, Adresse, Tel, etc.) und speicher das ganze in die MySQL-Tabelle "kunden". Die Tabelle hat einen auto-increment-wert (id) und eine (int) für kundennummer - das nur vorweg ich kann die Kundennummer aus div. Gründen nicht auto-increment machen.
Bevor ich nun den neuen Kunden in die DB eintrage frage ich aus der Tabelle Kunden mit Select die letzte (größte) Kundennummer ab und zähle eins dazu. Dann trage ich die Daten mit der um 1 erhöhten Kundennummer in die Datenbank ein.
Jetzt habe ich mir folgendes gedacht:
PHP:
$sperre = mysql_query("LOCK TABLES `kunden` WRITE")
$abfrage = mysql_query("SELECT * FROM 'kunden' WHERE .......")
if(@mysql_num_rows($abfrage)) {
$kdnr = mysql_fetch_array($abfrage);
$kdnr = $kdnr['kdnr'];
$kdnr++;
} else {
$kdnr = "";
}
$abfrage = mysql_query("INSERT INTO 'kunden' ......")
$res=mysql_query("select LAST_INSERT_ID()");
$row=mysql_fetch_row($res);
$letzte=$row[0];
$sperre = mysql_query("UNLOCK TABLES");
if($letzte) {
header("Location: ........");
} else {
echo "Fehler";
}
Vielen Dank für euer Rückinfos!
Zuletzt bearbeitet: