Veröffentlicht 29. September 200618 j Hallo zusammen. Mit folgendem Code versuche ich zu prüfen ob es einen Benutzernamen schon in der Tabelle gibt. Aber es klappt irgendwie nicht so wie ich es mir vorstelle. $name = "helmut"; if(mysql_query("SELECT name FROM tabelle WHERE name = '$name'")){ echo "gibbet schon"; }[/PHP] Er führt die Anweisungen auch dann aus wenn es den Namen noch nicht in der datenbank gibt. Kann mir jemand sagen wo da der Fehler ist? Danke im voraus!
29. September 200618 j Ein Blick ins Manual [1] von php hätte dir verraten das mysql_query ein true zurückliefert wenn die anfrage Erfolgreich war. Da das SQL Statement richtig ist gibt es also immer ein true. Nur hast du keine Ergebniszeilen zurückbekommen. Mit der Methode[2] mysql_num_rows kannst du dir die Anzahl der betroffenen Zeilen zurückgeben lassen. [1] http://de.php.net/mysql_query [2] http://de.php.net/manual/de/function.mysql-num-rows.php
1. Oktober 200618 j Ein Blick ins Manual [1] von php hätte dir verraten das mysql_query ein true zurückliefert wenn die anfrage Erfolgreich war. Naja, fast. Bei einem Select z.B. bekommst du ein ResultSet bzw. einen ResourceIdentifier zurück mit du dann weiter arbeiten kannst.
1. Oktober 200618 j Ich würde in den Select noch ein Uppercase einbauen. So bist Du auf der sicheren Seite. mysql_query("SELECT name FROM tabelle WHERE to_upper(name) = to_upper(".$name.")'); Wenn allerdings halloHallohaLLoHaLlO für dich unterschiedliche Benutzernamen sind dann natürlich nicht. Frank
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.