dedlfix: supplied argument is not a valid MySQL result resource?

Beitrag lesen

echo $begrüßung;

Ich lasse ein php-Script zwei Variablen übergeben an ein anderes Script (var1 und var2). Es handelt sich dabei um eine Monats- und eine Jahresangabe.

Diese Behauptung ist ja schön und gut, aber hast du auch den Beweis erbracht, dass das stimmt? Haben Kontrollausgaben die gewünschten Werte angezeigt?

Die übergebenen Variablen übernehme ich in die Strings $monat und $jahr. Das funktioniert auch soweit.

"Funktioniert" heißt in deinem Fall konkret was? Wie hast du kontrolliert, dass das "funktioniert"?

Jetzt will ich aus meiner Tabelle alle Felder auswählen, bei denen Monat und Jahr übereinstimmen mit folgender Syntax:
$abfrage = "SELECT * FROM PlatteMonat WHERE Monat=$monat AND Jahr=$jahr";

Das ist in erster Linie eine Syntax, um einen PHP-String zu erstellen. Wenn du ein Problem mit der Datenbank vermutest, schau dir konkret an, was du der Datenbank übergibst.

Nebenbei: Wie stellst du sicher, dass nur gewünschte Werte in die Abfrage eingebaut werden können und keine SQL-Injection möglich ist?

Als Ergebnis erhalte ich die Fehlermeldung:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource

Was hast du bei deiner Recherche herausgefunden, was diese Fehlermeldung verursacht? Welche Tipps standen dabei, um die Ursache für diesen Folgefehler zu finden?

Was mich allerdings vor ein echtes Rätsel stellt: Verkürze ich die Abfrage lediglich auf das Jahr, also:
$abfrage = "SELECT * FROM PlatteMonat WHERE Jahr=$jahr";
dann funzt die Kiste einwandfrei. Verkürze ich die Abfrage allerdings auf den Monat, also
$abfrage = "SELECT * FROM PlatteMonat WHERE Monat=$monat";

Das ist immer noch nur PHP-Syntax.

dann erhalte ich dieselbe Fehlermeldung wie oben beschrieben. Ich bin Anfänger, ratlos und frustriert ... kann mir jemand helfen?

Nicht direkt, weil niemand ohne Glaskugel sagen kann, was in deinen Variablen drinsteht und was du dem MySQL-Server letzlich übergibst. Ich nehme man an, dass das was zwischen der Erstellung dieses String und der Fehlermeldung liegt soweit richtig ist, außer dass dabei überhaupt keine Auswertung und Reaktion auf die von den mysql_*-Funktionen zurückgemeldeten Fehlerzustände erfolgt.

echo "$verabschiedung $name";