MySQL Problem (mysql_num_rows)
Philipp
- webserver
0 Tobias Kloth0 Götz0 fastix®
HI!
Bei volgendem Quelltext:
$mysql_select="SELECT * FROM $tabelle WHERE login=$log AND paswort=$pass";
$result=mysql_query($mysql_select);
$menge=mysql_num_rows(result);
zeigt er immer volgenden Fehler an:
WARNING: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:...xxx\xxx.php on line xxx
Es liegt doch wahrscheinlich an dem mysql_num_rows und dem WHERE in dem mysql_select denn ohne WHERE funktioniert die scheiße!
Vielen Dank für die Hilfe
Hallo Philipp,
$mysql_select="SELECT * FROM $tabelle WHERE login=$log AND paswort=$pass";
was steht in $log und in $pass drin? stehen dort nur Zahlen drin? wenn nicht sollte noch ein Satz Anführungszeichen um die Variablen:
... WHERE '".$log."' AND ...
ich hoff doch, dass du (wenn $log und $pass) vom Benutzer kommen schon entsprechend entschärft hast (hier mit mysql_escape_string()) - außerdem, brauchst du wirklich _alle_ Spalten? Frag besser nur die ab, die du auch wirklich brauchst: http://dclp-faq.de/q/q-sql-select.html.
$result=mysql_query($mysql_select);
$menge=mysql_num_rows(result);
wo ist die Konstante result definiert, und was steht in selbiger? ich nehme doch mal an, du meinst $result, oder?
WARNING: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:...xxx\xxx.php on line xxx
in einem solchen Fall ist es immer ratsam mysql_error() zu befragen - die Fehlermeldungen vom mysql sind aussagekräftiger.
Es liegt doch wahrscheinlich an dem mysql_num_rows und dem WHERE in dem mysql_select denn ohne WHERE funktioniert
nein mysql_num_rows() ist unschuldig :-) die fehlenden Anführungszeichen sind IMO schuld.
die scheiße!
*pfui* stelle er sich in die Ecke und schäme sich für diese unflätigen Ausdrucksweise.
Grüße aus Nürnberg
Tobias
Hallo Philipp!
$mysql_select="SELECT * FROM $tabelle WHERE login=$log AND paswort=$pass";
$result=mysql_query($mysql_select);
$menge=mysql_num_rows(result);
WARNING: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:...xxx\xxx.php on line xxx
Das heißt, das was mit Deinem SQL-Statement nicht stimmt.
Es liegt doch wahrscheinlich an dem mysql_num_rows und dem WHERE in dem mysql_select denn ohne WHERE funktioniert die scheiße!
Es liegt an Deinem SQL-Statement, und wenns ohne WHERE funktioniert, dann liegts an dem ,was alles hinter WHERE steht.
Grundsätzlich ist es zum Debuggen von MySQL-Fehlern sinnvoll, sich auch das SQL-Statement, daß an die DB geschickt wird auszugeben lassen.
Auch ist es ratsam, sich die Fehler, die MySQL zurückgibt ausgeben lassen.
(Lesetip: http://de2.php.net/manual/de/function.mysql-query.php)
In deinem Fall denke ich, daß Du besser "... loggin = '".$log."' ..." (oder auch '... ="'.$log.'"; analog bei pas_s_wort) machen solltest.
MfG
Götz
Moin!
$mysql_select="SELECT * FROM $tabelle WHERE login=$log AND paswort=$pass";
WARNING: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:...xxx\xxx.php on line xxx
Es liegt doch wahrscheinlich an dem mysql_num_rows und dem WHERE in dem mysql_select denn ohne WHERE funktioniert die scheiße!
[1] Vielleicht liegt es daran, dass Du eine Spalte 'Passwort' und nicht 'paswort' hast.
[2] Verbindungsaufbau klappt?
[3] Wo ist die Fehlerbehandlungsroutine?
Ich meine sowas: $result=mysql_query($mysql_select) or die("<hr>".mysql_error."<br>".$mysql_select."<hr>")
Dann müsstest Du nicht hier fragen... weil Du eine aussagekräftige Fehlermeldung hättest. (Vermutlich sowas wie "Spalte paswort existiert nicht in Tabelle ...".
[4] $mysql_select="SELECT * FROM $tabelle WHERE login=$log AND paswort=$pass";
Das ist böse, böse, böse! Niemals SELECT *, wo sind die Quotas?
Vielen Dank für die Hilfe
Bitte.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®