Hi!
Hab mit PHP und MySQL angefangen aber stehe grad vor nem Problem.
Und zwar soll bei einer Userregistrierung überprüft werden, ob der Name schon in der Datenbank steht(evtl. später auch Email, was sich aber leicht ergänzen lässt, wenn das Problem gelöst ist)
und wenn der Eintrag schon vorhanden ist, eine Warnung kommt.
So sieht mein Ansatz aus(kann auch falsch sein):
...
$sql="SELECT username FROM daten WHERE username='username'";
if($sql > 0) {
echo "Den Namen gibt es schon!";
}
else {//daten eintragen
...
Das Eintragen funktioniert soweit schon allerdings kann man eben Namen mehrfach registrieren.
Ich bin mir auch nicht sicher, ob $sql 1 zugewiesen wird, wenn der Name gefunden wird, aber ich hoffe ihr könnt mir da helfen.
WL
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Hi
Wenn der Benutzername in einer Tablle nur einmal vorkommen darf, dann solltest du ihn als Primary Key (Primärschlüssel) definieren. Das wäre eine typische Aufgabe einer Datenbank.
Ich bin mir auch nicht sicher, ob $sql 1 zugewiesen wird, wenn der Name gefunden wird, aber ich hoffe ihr könnt mir da helfen.
Probiere es doch einfach mal. Ich bin kein PHP spezialist, aber so ähnlich würde ich es auch versuchen.
Oder wie wäre es mit :
$sql="SELECT username FROM daten WHERE username='username'";
echo $sql
Nur zum sehen was es ausgibt.
Gruss, d-oli
Hi,
So siehts aus:
$sql="SELECT username FROM daten WHERE username='username'";
echo "Das ist $sql";
gibt Das ist SELECT username FROM daten WHERE username='username' aus. =)
Da fehlt sowieso schonmal das Dollar Zeichen.
Aber damit scheints zu gehen:
(Durch zufall in einem anderem Skript und durch google gefunden....)
$sql="SELECT username FROM daten WHERE username='$username'";
$res=mysql_query ($sql);
$num=mysql_num_rows($res);
echo "das ist $num";
Wenn der Name existiert wird 1 ausgegeben, wenn nicht 0.
Edit:
...dann solltest du ihn als Primary Key (Primärschlüssel) definieren...
Stimmt, aber ich glaube dann kann ich nicht so 'leicht' eine Fehlermeldung für den Benutzer ausgeben. Werd ich aber mal ausprobieren.
Trotzdem danke für die schnelle Antwort!
MfG WL
[Diese Nachricht wurde nachträglich bearbeitet.]
Das Attribut für die Spalte ist nicht Primary Key sondern "UNIQUE".
Und wie oben schon geschrieben musst du mit $num=mysql_num_rows($res); die Anzahl der Ergebnisse überprüfen.
MfG Hanussen