1Danke
ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
208
208
EMPFEHLEN
-
Hallo,
Das Script soll aus der Datenbank IP-Adressen auslesen und nachsehen, ob eine bestimmte IP-Adresse bereits 3 Einträge am heutigen Tag hat. Falls ja, soll das Script mit die('fehler'); abbrechen.
Doch ich erhalte folgende Fehlermeldung:
Programmcode:Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in
Sorry, bin Anfänger!PHP-Code:
$block = mysql_query("SELECT * FROM `ip-adressen` WHERE IP='$UserIP' AND Datum='$DatumfuerDatenbank'");
if (mysql_num_rows($block) > 3)
{
die('Maximale Anzahl der Emails pro Tag überschritten! (Spamschutz)');
}
-
05.01.12 18:40 #2
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Hi,
macht ja nix, jeder fängt mal an
Als erstes kannst du dir gleich mal angewöhnen, die Fehlerbehandlung konsequent einzubauen:
Code php:1 2 3 4 5 6
$block = mysql_query("SELECT * FROM `ip-adressen` WHERE IP='$UserIP' AND Datum='$DatumfuerDatenbank'") or die(mysql_error()); if (mysql_num_rows($block) > 3) { die('Maximale Anzahl der Emails pro Tag überschritten! (Spamschutz)'); }
Wie du siehst, habe ich hinter mysql_query() dieses "or die(mysql_error());" eingebaut. Das zeigt dir im Fehlerfalle, was schief gelaufen ist. mysql_error() liefert den Fehler in einem Format zurück, was man lesen kann. Es gibt noch mysql_errno() das liefert aber nur die Fehlernummer.
Anscheinend ist dein SQL-Statement fehlerhaft. mysql_error() wird dir den Grund nennen.
Im Fehlerfalle liefert mysql_query() nämlich "false" zurück, was ein boolscher (boolean) Wert ist. Der würde in $block gespeichert und anschließend an mysql_num_rows() übergeben werden. mysql_num_rows() will aber keinen boolean Wert haben sondern das Ergebnis einer Abfrage (resource).Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
[PHP] [MySQL] Debug Queries
Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.
Wahrscheinlich liegt es an Datum='$DatumfuerDatenbank'---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Oh mann, danke. Wie dumm von mir
Ich hatte keine Datenbank ausgewählt. Danke!
Ähnliche Themen
-
mysql_num_rows
Von dg87 im Forum PHPAntworten: 1Letzter Beitrag: 26.10.09, 19:29 -
Boolean
Von Peter_Lustig im Forum 3D Studio MaxAntworten: 2Letzter Beitrag: 14.09.05, 11:16 -
mysql_num_rows()
Von Y05h1 im Forum PHPAntworten: 2Letzter Beitrag: 12.04.05, 17:45 -
mysql_num_rows
Von aciddesigns_de im Forum PHPAntworten: 4Letzter Beitrag: 08.04.05, 14:35 -
mysql_num_rows
Von Kamephis im Forum PHPAntworten: 6Letzter Beitrag: 24.06.04, 18:12





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren