PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [MySQL] Eintrag (bsp. Benutzername) schon vorhanden - Wie überprüfen?



Maisaffe
18.04.2006, 14:09
Wie würdet Ihr in einer MySQL Datenbank per PHP abfragen ob ein Eintrag schon vorhanden ist (z.B. ob ein Nick schon vorhanden ist?)

Meine Lösung ist blöd, wie folgt:
PHP sucht in MYSQL den nickname und dabei kommt ein array als Ergebnis heraus:
if(is_array(mysql_fetch_array(mysqlbla)){echo "Vollidiot. Der Nick ist in Verwendung";}

Geht das ganze nicht irgendwie besser?

lizard
18.04.2006, 15:15
Du kannst z.B. die Treffer auszählen lassen.

<?php
// sucht den Namen
$get_user=mysql_query("SELECT * FROM user WHERE name='$gesuchter_name'");

// zählt die gefundenen Reihen aus und vergleicht auf 0
if(mysql_num_rows($get_user)==0)
{ echo "Willkommen."; } // wenn der Name nicht vorhanden
else
{ echo "Fehler."; } // wenn der Name vorhanden
?>

Maisaffe
18.04.2006, 16:00
Du kannst z.B. die Treffer auszählen lassen.

<?php
// sucht den Namen
$get_user=mysql_query("SELECT * FROM user WHERE name='$gesuchter_name'");

// zählt die gefundenen Reihen aus und vergleicht auf 0
if(mysql_num_rows($get_user)==0)
{ echo "Willkommen."; } // wenn der Name nicht vorhanden
else
{ echo "Fehler."; } // wenn der Name vorhanden
?>
Hat mir auch ein Freund vor ein paar Minuten vorgeschlagen. :D
Habe diese Lösung jetzt auch verwendet - was richtig brauchbares scheint es irgendwie nicht zu geben. Schade, aber egal. ;)

Lukas
18.04.2006, 17:18
Hat MySQL nicht auch ein Attribut unique für Felder, damit da nicht der selbe Eintrag mehrmals drinstehen kann? Ich meine, da war was in der Art...

Maisaffe
18.04.2006, 17:51
Hat MySQL nicht auch ein Attribut unique für Felder, damit da nicht der selbe Eintrag mehrmals drinstehen kann? Ich meine, da war was in der Art...
Hm, könntest recht haben. Sollte ich also versuchen den Nick zu schreiben käme ein FALSE raus... joa, clever clever. :D

Muss ich später oder morgen gleich ausprobieren (je nach Laune).

Demonking
18.04.2006, 19:52
Hat MySQL nicht auch ein Attribut unique für Felder, damit da nicht der selbe Eintrag mehrmals drinstehen kann? Ich meine, da war was in der Art...
Jo hast 100%ig recht MQ gibt denn befehl aber ob man dann auch die Fehlernachricht gut ausgeben kann ;/

Manni
20.04.2006, 10:36
Hat MySQL nicht auch ein Attribut unique für Felder, damit da nicht der selbe Eintrag mehrmals drinstehen kann? Ich meine, da war was in der Art...
MySQL hat Unique. ALlerdings würde ich mich nicht darauf verlasse, sondern lieber die mysql_num_rows()-Lösung verwenden. Im Fall einens doppelten Eintrags bei einem Unique-Feld bekommst du einen MySQL-Fehler (Duplicate entry for 'bla')

dead_orc
23.04.2006, 16:37
Ich würde eine Kombination aus beidem Verwenden: Sowohl ein unique Feld als auch eine Überprüfung mit mysql_num_rows() oder COUNT() (was man in diesem Fall auch verwenden könnte, oder?)