Hallo,
Ich habe in meiner MySql Datenbank eine Spalte namens nick wo wenn sich jemand auf meiner Seite registriert sein Nick gespeichert wird , natürlich will ich keine doppelten Nicks auf meiner Homepage haben
Statt alle Datensätze anzufordern und anschließend zu vergleichen, wäre es viel cleverer, nur die Datensätze anzufordern, die den gewünschten Benutzernamen enthalten. Sind dies keine, so gab es den Benutzer noch nicht.
Statt
$abfrage="SELECT * FROM
User
WHERE 1";
verwende
$abfrage="SELECT nick FROM User
WHERE nick = '"
. mysql_real_escape_string($nick) . "'";
Besser ist der Zugriff auf die entsprechende superglobale Variable ($_POST)
Gibt es mehr als 0 Datensätze, so gab es den Nick bereits ...
Noch cleverer ist folgende Vorgehensweise:
Füge zur Spalte nick einen UNIQUE Index hinzu, nun lässt MySQL in der Spalte nick keine doppelten Werte zu.
Prüfe überhaupt nicht, ob der Nickname bereits vorhanden ist, sondern versuche gleich, den neuen Datensatz einzufügen.
Rechne damit, dass es dabei zu Fehlern kommt.
Tritt keiner auf, dann ist der Benutzer erfolgreich mit seinem Wunschnick angemeldet.
Tritt ein Fehler auf und ist der aufgetretene Fehler eine Schlüsselverletzung in der Spalte nick, so wurde der Nick bereits registriert und Du kannst nun dem Benutzer die entsprechende Rückmeldung geben, dass er sich einen anderen Nick suchen muss.
Freundliche Grüße
Vinzenz