Überprüfen ob Username schon in der Datenbank vorhanden ist.

... komplette Frage anzeigen

3 Antworten

Hello there,

wenn du für jede "Tipprunde" eine neue Tabelle machst, oder die Tabelle jedes mal wieder leerst/archivierst, hättest du eine sehr einfache Möglichkeit:

Deklariere die Spalte Username hier einfach als UNIQUE. Dann darf jeder Wert nur einmal vorkommen.

Und dann kannst du folgendermaßen arbeiten: Wenn du einen Datensatz einfügen willst, obwohl der Username schonmal drin ist, dann wirft MySQL eine ganz bestimmte Fehlernummer (siehe unten)

if($sql_befehl)
{ echo ....
        Vielen Dank für deine Tippabgabe. Bei Gewinnen wirst du von uns benachrichtet.
        Du wirst automatisch auf unsere Homepage weitergeleitet.
'; }
else
{
   if(mysql_errno($datenbank) ==1062)
  {echo "Entschuldigung, Sie haben bereits einen Tipp abgegeben.";}
}

ACHJA:

Informier dich mal zum Thema SQL-Injections. Werte aus einem Userformular, sprich hier der Variable $ _ POST dürfen NIE!!!!!!! unvalidiert in die Datenbank rein, sonst machst du deine Datenbank angreifbar. Wende auf alle Einträge von $ _ POST die Funktion

mysql_real_escape_string

an!!!
Hoffe ich konnte dir helfen.

MfG

Alex

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von TeeTier
05.07.2014, 16:32
Informier dich mal zum Thema SQL-Injections.

Das hat mir auch Schmerzen bereitet! Gut, dass jemand etwas zu dem Thema sagt.

Alles in allem sehr gute Antwort! :)

1

Ich mag php überhaupt nicht, deshalb keine spezielle Antwort. Ansonsten musst du die Errorcodes auswerten, die MySQL zurück gibt.

Versuchen einen Insert mit dem Usernamen, dann sehen, ob MySQL ein "duplicate entry" meldet. Wenn ja, gibt es den Namen schon, wenn nein, dann weiter.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?