Datensatz überprüfen

tittli

Erfahrenes Mitglied
Hallo

Ich will in meiner DB überprüfen, ob ein Anmeldename bereits vorhanden ist oder nicht.

PHP:
$suche = "SELECT FROM passwort WHERE login LIKE '$login'";
 $suchen = mysql_query($suche);
 while($row = mysql_fetch_array($suchen))  //Zeile 20
 	{
 	list($anzahl) = $row;
 	}
 if ($anzahl>0)
 	die("Login <b>$login</b> existiert bereits.");


Was ist daran falsch?

Fehlermeldung: Warning: Supplied argument is not a valid MySQL result resource in c:\www\login\register.php on line 20

Ich finde in Zeile 20 einfach keinen Fehler...

gruss
 
Dein while funktioniert (der zählt nicht hoch) nicht und der Fehler kommt wenn du auf einen leeren Result fetcht


PHP:
$suche = "SELECT FROM passwort WHERE login LIKE '$login'"; 
$suchen = mysql_query($suche); 
if(mysql_num_rows($suchen) > 0)
{
    die('Login exists');
}
 
Zuletzt bearbeitet:
Sorry geht nicht! :( ...

Warning: Supplied argument is not a valid MySQL result resource in c:\www\login\register.php on line 21

Zeile 21 ist die "if(mysql_num_rows($suchen) > 0)"
Jetzt habe ich da mal ein ';' angehängt...die Fehlermeldung kommt noch immer, aber komischerweise erscheint die Ausgabe "Login exists"...verstehe ich nicht ganz...

gruss
 
Hallo!

Mach bloß diesen Semikolon wieder weg!

Es reicht aber, wenn du das so schreibst:

PHP:
$suche = "SELECT FROM passwort WHERE login LIKE '$login'"; 
$suchen = mysql_query($suche); 
if (mysql_num_rows($suchen) > 0) die('Login exists');

Da du nur eine Anweisung in der If-Abfrage hast, brauchst du nicht unbedingt geschweifte Klammern um die Anweisung zu schreiben.

Der Fehler wird durch die MySQL-Abfrage verursacht!
Immer wenn diese ungültig ist, passiert dieser Fehler.
Die Abfrage muss nämlich so aussehen:

PHP:
$suche = "SELECT * FROM passwort WHERE login LIKE '$login'"; 
$suchen = mysql_query($suche); 
if (mysql_num_rows($suchen) > 0) die('Login exists');

Wenn du das unbedingt so machen willst, solltest du aber ein Feld benutzen, dass einen möglichst kleinen Wert enthält (zum Beispiel eine ID).
Du könntest natürlich auch direkt mit der count()-Funktion von MySQL arbeiten.
 
Zuletzt bearbeitet:
Hey danke...so funktionierts einwandfrei.
Jetzt noch eine Frage. Kann man mit echo irgendwie Links ausgeben? Oder müssen die anders ausgegeben werden? Ich will durch eine if-Abfrage zwei unterschiedliche Links ausgeben...wie geht das?


wieso stimmt diese Form nicht

PHP:
echo "<a href="home.html">Hier</a>gehts zur&uuml;ck";

danke
 
Zuletzt bearbeitet:
Original geschrieben von Spescha
wieso stimmt diese Form nicht

PHP:
echo "<a href="home.html">Hier</a>gehts zur&uuml;ck";
Weil Du den String nach dem Gleichheitszeichen wieder schliesst.

Machs mal so:

PHP:
echo '<a href="home.html">Hier</a>gehts zur&uuml;ck';

Gehört aber eigentlich zu den PHP-Basics!
 
Zurück