Ich weiß wie man Daten aus der Datenbank rausholt usw, aber ich weiß nicht wie ich jetzt diese Daten (z.B. einen Nickname der in der Datenbank ist) und ein Input (z.B. bei einem Anmeldeformular) so vergleichen soll... mit einer If Abfrage, ja, aber wie? Ich habe schon viele durchprobiert, aber nie hats geklappt.....
Dürfte ich annehmen, dass du diese if-Abfrage meinst?Wenn ja, ist es klar, dass es nicht funktioniert, du vergleichst deine SQL-Abfrage mit dem Usernamen, nicht das Ergebnis. Die Abfrage ergibt nur True, wenn der Username SELECT nick FROM user WHERE nick = '$username' lautet.
Folgender Code sollte funktionieren:Änderungen:
1. Ich vergleiche nicht, die Abfrage mit dem Usernamen, sondern überprüfe, ob sie mindestens ein Ergebnis (= mindestens einen User mit diesem Namen) zurückgibt.
2. Ich habe $prüfpw mal in $pruefpw umbenannt, ich würde keine Non-ASCII-Zeichen in Variablen-, Funktions- und Klassennamen verwenden
3. Ich habe $username durch $_GET['username'] ersetzt, damit es auf wirklich allen Servern funktioniert.
4. Ich habe den SQL-String mit Verkettung zusammengebaut. Eher prinzipiell bedingt
Aber ich hab hier einfach mal ne Frage (hab mir gerade den Eintrag im PHP-Manual zu mysql_query durchgelesen):
Wieso soll eine mySQL-Anfrage, die per mysql_query ausgeführt wird, nicht mit einem Semikolon enden? Bei einer "normalen" Anfrage (per mysql.exe or whatever) muss eine Anfrage doch sogar damit enden - wieso nicht hier?
Ich denke mal, weil in PHP bei mysql_query() klar ist, wo die Abfrage zuende ist (am Ende des Strings, der übergeben wird) Vielleicht fügt PHP ja auch selbstaändig ans Ende automatisch ein Symikolon ein und dann wäre es doppelt