tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von saftmeister
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
208
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Benny1 Benny1 ist offline Grünschnabel
    Registriert seit
    Jan 2012
    Beiträge
    2
    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:
    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in
    Programmcode:
    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)');

    Sorry, bin Anfänger!
     

  2. #2
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    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).
    Benny1 bedankt sich. 
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  3. #3
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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

  4. #4
    Benny1 Benny1 ist offline Grünschnabel
    Registriert seit
    Jan 2012
    Beiträge
    2
    Oh mann, danke. Wie dumm von mir Ich hatte keine Datenbank ausgewählt. Danke!
     

Ähnliche Themen

  1. mysql_num_rows
    Von dg87 im Forum PHP
    Antworten: 1
    Letzter Beitrag: 26.10.09, 19:29
  2. Boolean
    Von Peter_Lustig im Forum 3D Studio Max
    Antworten: 2
    Letzter Beitrag: 14.09.05, 11:16
  3. mysql_num_rows()
    Von Y05h1 im Forum PHP
    Antworten: 2
    Letzter Beitrag: 12.04.05, 17:45
  4. mysql_num_rows
    Von aciddesigns_de im Forum PHP
    Antworten: 4
    Letzter Beitrag: 08.04.05, 14:35
  5. mysql_num_rows
    Von Kamephis im Forum PHP
    Antworten: 6
    Letzter Beitrag: 24.06.04, 18:12