Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- [PHP & MySQL] Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given (https://www.gegen-bilderklau.net/thread.php?threadid=179784)


Geschrieben von brain_surgery am 23.04.2011 um 15:51:

  Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given

Huhu Leute.

Ich habe gerade ein Problem und komme nicht drauf, was da falsch sein könnte.
Und zwar bekomme ich folgende Fehlermeldung:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in ...

Ich verstehe aber nicht, wieso. Mein Skript sieht folgendermaßen aus:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
$query mysql_query("SELECT * FROM pferde_light") or die (mysql_error());
if (@mysql_num_rows($query) == 0)
{
    echo "Keine Pferde gefunden!";
    exit;
} else {
   while ($pferd mysql_fetch_assoc($query))
   {
        ...
   }

}


Das Skript (im while) wird trotz der Fehlermeldung ausgeführt. Was mir am Rästelhaftesten an der ganzen Sache vorkommt, ist dass trotz all den Vorkehrungen die ich gegen Fehler getroffen hab, trotzdem einer auftritt. Weder mysql_error() noch die if-Bedingung, die schaut ob keine Datensätze vorhanden sind, können etwas ausrichten.

Bitte um Hilfe, vielleicht übersehe ich da irgendetwas wichtiges?
;_;
lg, brain



Geschrieben von Oli am 23.04.2011 um 20:31:

 

Hi,

das Problem hatte ich selbst schon einmal und liegt offenbar in dieser Zeile:
php:
1:
$query mysql_query("SELECT * FROM pferde_light") or die (mysql_error());

PHP scheint nun auszuwerten:
php:
1:
2:
3:
$query mysql_query("SELECT * FROM pferde_light"//true (erfolgreich der Variablen zugewiesen)
 or
die (mysql_error()); //wird nicht ausgeführt, weil vorherige Bedingung true war

PHP interpretiert die Zeile also nicht so, wie es gewünscht war und fährt trotz fehlgeschlagenem mysql_query() fort.

Probiers mal so:
php:
1:
$query = (mysql_query("SELECT * FROM pferde_light") or die (mysql_error()));



LG,
Oli



Geschrieben von brain_surgery am 23.04.2011 um 21:01:

 

Vielen Dank für die Antwort!

Ich habe es ausprobiert, nun zeigt es mir nur mehr die Fehlermeldung der darauf folgenden if-Bedingung an ("Keine Pferde gefunden!").

Das heißt die mysql_num_rows scheinen jetzt 0 zu sein, obwohl sich nachweislich ein Datensatz in der Tabelle befindet.

Was mich ja wundert ist, dass es davor ja trotzdem klappte, das Skript in der while auszuführen, nur ging er scheinbar einmal zu oft in die Schleife hinein. (Ist zumindest meine Interpretation. Ich liege wahrscheinlich falsch, werde es eben mal mit mehreren Datensätzen probieren.)

lg, brain

EDIT: Alles klar, ich bin dumm, Fehler gefunden. Ich hatte nachher noch eine UPDATE-query, die ich ebenfalls in die Variable $query packte, wodurch die Ergebnisse der vorigen query verloren gingen.
Hat sich jetzt erledigt, es funktioniert einwandfrei! großes Grinsen


Forensoftware: Burning Board, entwickelt von WoltLab GmbH