• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] MySQL ID um eins hochzählen

J

j-l-n

Guest
Und zwar habe ich eine Tabelle mit Benutzern. Besteht unter anderem aus ID, Name, Passwort-Hash usw.
Nun können sich über ein Skript auch neue Benutzer registrieren - so sieht der Eintrag in die DB aus:
PHP:
$sql = "INSERT INTO `members` VALUES($ID, '$username', '$password_hash', 0, '$user_ip');

die ID soll fortlaufend erzeugt werden - existiert also schon ein User mit der ID 2, soll der neue User die ID 3 bekommen usw.
Zusätzlich soll auch immer hinten weiter hochgezählt werden - ist also der User Nr. 4 gelöscht, aber es existieren Nr. 1, 2, 3 & 5; dann soll die ID NICHT "die Lücke füllen", sondern 6 sein.
 
$sql = "INSERT INTO `members` VALUES('', '$username', '$password_hash', 0, '$user_ip');
 
Ich würde beim INSERT ja immer die Spaltennamen angeben, dann musst du nicht zuerst in die DB schauen, um zu wissen, welcher Wert da für was steht. Dann kann die die ID auch komplett weglassen:
Code:
INSERT INTO `members` (`username`, `passwordHash`, `k.A. für was das 0 steht`, `ip`) VALUES ($username', '$password_hash', 0, '$user_ip')
oder noch lesbarer:
Code:
INSERT INTO `members` SET `username` = '$username', `passwordHash` = '$password_hash', `k.A. für was das 0 steht` = 0, `ip`= '$user_ip'

Da musst du dann auch nichts am Code ändern, wenn du mal deine DB um eine Spalten mit Defaultwert erweiterst.
 
Das ist natürlich übersichtlicher - danke für den Tipp!

_________________
Thema ist gelöst!
 
Zuletzt bearbeitet:
Zurück
Oben