Fehlermeldung

Fehlermeldung

am 07.08.2006 19:44:54 von Daniel Schmidt

Hallo Newsgroup,

ich bekomme folgenden Fehler:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL
result resource in
/beispiel.php on line 542

$ergebnis_vorauswahl = mysql_query("SELECT ".$variablen."
FROM Tabelle WHERE bla LIKE '%$row_bla->blub%' AND
blib!='$blob' AND bla!='' GROUP BY Gruppe ORDER BY
test") OR die (mysql_error());

was bedeutet dieser Fehler bzw. was ist in der Abfrage verkehrt?


Grüße Daniel

Re: Fehlermeldung

am 07.08.2006 19:55:02 von heiko

Hallo Daniel!

Am Mon, 07 Aug 2006 19:44:54 +0200 schrieb Daniel Schmidt:

> ich bekomme folgenden Fehler:
> Warning: mysql_fetch_object(): supplied argument is not a valid MySQL
> result resource in
> /beispiel.php on line 542

Es stimmt mit Deiner Query etwas nicht!

> $ergebnis_vorauswahl = mysql_query("SELECT ".$variablen."
> FROM Tabelle WHERE bla LIKE '%$row_bla->blub%' AND
> blib!='$blob' AND bla!='' GROUP BY Gruppe ORDER BY
> test") OR die (mysql_error());
>
> was bedeutet dieser Fehler bzw. was ist in der Abfrage verkehrt?
>

Hast Du schon mal dieses versucht:

$query = "SELECT ".$variablen." FROM Tabelle WHERE bla LIKE
'%$row_bla->blub%' AND blib!='$blob' AND bla!='' GROUP BY Gruppe ORDER BY
test";
$ergebnis_vorauswahl = mysql_query($query) OR die(mysql_error());

Eventuell würde ich die Query-Variable per echo vorher ausgeben. Dann
kannst Du gucken, was an mySQL geschickt wird.
Schätze, er kommt mit der Variable im Query-String nicht zurecht...

MfG

Heiko Hergemöller
----
http://www.einfachkochen.de ==> Kochen mit Freu(n)de
http://www.techniker-abc.de ==> Forum rund um die Automatisierungstechnik

Re: Fehlermeldung

am 07.08.2006 20:38:26 von Norbert Melzer

Am Mon, 07 Aug 2006 19:44:54 +0200 schrieb Daniel Schmidt:

> Hallo Newsgroup,
>
> ich bekomme folgenden Fehler:
> Warning: mysql_fetch_object(): supplied argument is not a valid MySQL
> result resource in
> /beispiel.php on line 542
>
> $ergebnis_vorauswahl = mysql_query("SELECT ".$variablen."
> FROM Tabelle WHERE bla LIKE '%$row_bla->blub%' AND
> blib!='$blob' AND bla!='' GROUP BY Gruppe ORDER BY
> test") OR die (mysql_error());

Tja, leitest ein mit der Fehlermeldung und beachtest sie dann nicht...
Interessant wäre tatsächlich gewesen was in Zeile 542 steht und nicht
das von kurz davor...

Ausserdem habe ich noch einen Verbesserungsvorschlag zu Deiner Query:

$query = "SELECT {$variablen}
FROM Tabelle
WHERE bla
LIKE '%{$row_bla->blub}%'
AND blib!='{$blob}'
AND bla!=''
GROUP BY Gruppe
ORDER BY test";
$result = mysql_query($query) OR die (mysql_error());

Achja, der Lesbarkeit wegen eingefügte Whitespaces dürfen entfernt
werden :-)
Die geschweiften Klammern habe ich eingefügt, damit PHP $row_bla->blub
als dieses erkennt und nicht als $row_bla."->blub" Eine Vorgehensweise
die ich mir inzwischen allgemein angewöhnt habe, da ich nie genau weiß
wo PHP nun aufhört die Variable als Variable zu sehen und ab wann der
Rest wieder als String interpretiert wird. Bei den anderen Vars ist es
wie gesagt Gewohnheit :-)



> was bedeutet dieser Fehler bzw. was ist in der Abfrage verkehrt?

Auch wenn ich bereits einen Hilfeversuch gepostet habe, ich bleibe
dabei, wenn PHP den Fehler in Zeile X schmeißt, ist er unter anderem
auch dort mit zu suchen, sollte meine Hilfe also nix gebracht haben,
dann bastel uns doch bitte mal ein Minimalbeispiel zusammen und poste
uns das hier her.

> Grüße Daniel

HTH
Norbert

Re: Fehlermeldung

am 07.08.2006 22:16:22 von Daniel Schmidt

Hallo Heiko,

mit dem mysql_error() kommt folgende Fehlermeldung:
You have an error in your SQL syntax. Check the manual that corresponds
to your MySQL server version for the right syntax to use near 'Resource
id #26' at line 1

Grüße Daniel

Heiko Hergemöller schrieb:
>
> Hallo Daniel!
>
> Am Mon, 07 Aug 2006 19:44:54 +0200 schrieb Daniel Schmidt:
>
> > ich bekomme folgenden Fehler:
> > Warning: mysql_fetch_object(): supplied argument is not a valid MySQL
> > result resource in
> > /beispiel.php on line 542
>
> Es stimmt mit Deiner Query etwas nicht!
>
> > $ergebnis_vorauswahl = mysql_query("SELECT ".$variablen."
> > FROM Tabelle WHERE bla LIKE '%$row_bla->blub%' AND
> > blib!='$blob' AND bla!='' GROUP BY Gruppe ORDER BY
> > test") OR die (mysql_error());
> >
> > was bedeutet dieser Fehler bzw. was ist in der Abfrage verkehrt?
> >
>
> Hast Du schon mal dieses versucht:
>
> $query = "SELECT ".$variablen." FROM Tabelle WHERE bla LIKE
> '%$row_bla->blub%' AND blib!='$blob' AND bla!='' GROUP BY Gruppe ORDER BY
> test";
> $ergebnis_vorauswahl = mysql_query($query) OR die(mysql_error());
>
> Eventuell würde ich die Query-Variable per echo vorher ausgeben. Dann
> kannst Du gucken, was an mySQL geschickt wird.
> Schätze, er kommt mit der Variable im Query-String nicht zurecht...
>
> MfG
>
> Heiko Hergemöller
> ----
> http://www.einfachkochen.de ==> Kochen mit Freu(n)de
> http://www.techniker-abc.de ==> Forum rund um die Automatisierungstechnik

Re: Fehlermeldung

am 07.08.2006 22:31:52 von Daniel Schmidt

Hallo Heiko,

das muß wohl mit dem "GROUP BY" - Statement zusammenhängen, nehme ich
es raus ist der Fehler weg.


Grüße Daniel

Re: Fehlermeldung

am 07.08.2006 23:10:05 von Carsten Wiedmann

Heiko Hergemöller schrieb:

> Es stimmt mit Deiner Query etwas nicht!

Da er ja vorher schon ein mysql_error() benutzte, hätte das IMHO
"anschlagen" müssen, wen das Query defekt wäre.

> Am Mon, 07 Aug 2006 19:44:54 +0200 schrieb Daniel Schmidt:
>
> > $ergebnis_vorauswahl = mysql_query("SELECT ".$variablen."
> > FROM Tabelle WHERE bla LIKE '%$row_bla->blub%' AND
> > blib!='$blob' AND bla!='' GROUP BY Gruppe ORDER BY
> > test") OR die (mysql_error());
> >
>
> Hast Du schon mal dieses versucht:
>
> $query = "SELECT ".$variablen." FROM Tabelle WHERE bla LIKE
> '%$row_bla->blub%' AND blib!='$blob' AND bla!='' GROUP BY Gruppe ORDER BY
> test";
> $ergebnis_vorauswahl = mysql_query($query) OR die(mysql_error());

Unterschiedet sich ja nicht wirklich was dann passiert ;-)


> > Eventuell würde ich die Query-Variable per echo vorher ausgeben. Dann
> > kannst Du gucken, was an mySQL geschickt wird.
> > Schätze, er kommt mit der Variable im Query-String nicht zurecht...

Das ist natürlich der grosse Vorteil deiner Lösung. Allerdings wird dieses
Mittel zum Debuggen vom OP wohl nach wie vor ignoriert...

Gruß
Carsten

Re: Fehlermeldung

am 07.08.2006 23:10:10 von Carsten Wiedmann

Daniel Schmidt schrieb:

> Heiko Hergemöller schrieb:
> >
> > Hast Du schon mal dieses versucht:
> >
> > $query = "SELECT ".$variablen." FROM Tabelle WHERE bla LIKE
> > '%$row_bla->blub%' AND blib!='$blob' AND bla!='' GROUP BY Gruppe
> > ORDER BY test";
> > $ergebnis_vorauswahl = mysql_query($query) OR die(mysql_error());

> mit dem mysql_error() kommt folgende Fehlermeldung:

Wieso "mit dem"? Das mysql_error() hattest du ja urspünglich auch schon:
> > > $ergebnis_vorauswahl = mysql_query("SELECT ".$variablen."
> > > FROM Tabelle WHERE bla LIKE '%$row_bla->blub%' AND
> > > blib!='$blob' AND bla!='' GROUP BY Gruppe ORDER BY
> > > test") OR die (mysql_error());
^^^^^^^^^^^^^^^^^^^^^^^

> You have an error in your SQL syntax. Check the manual that corresponds
> to your MySQL server version for the right syntax to use near 'Resource
> id #26' at line 1

Dann enthält wohl eine deiner Variablen / Returns deiner Objecte ein
"Resource id #26".

> > Eventuell würde ich die Query-Variable per echo vorher ausgeben. Dann
> > kannst Du gucken, was an mySQL geschickt wird.
> > Schätze, er kommt mit der Variable im Query-String nicht zurecht...

Mach das doch einfach, wenn es schon jemand vorschlägt...

BTW:
Bist du sicher, dass deine geposteten Codezeilen alle zu den jeweiligen
Fehlermeldungen gehören?

Gruß
Carsten

Re: Fehlermeldung

am 07.08.2006 23:19:48 von Thomas Rachel

Daniel Schmidt wrote:

> Hallo Heiko,

Warum nur Heiko?

> mit dem mysql_error() kommt folgende Fehlermeldung:
> You have an error in your SQL syntax. Check the manual that corresponds
> to your MySQL server version for the right syntax to use near 'Resource
> id #26' at line 1
>
> Grüße Daniel
>
> Heiko Hergemöller schrieb:

- Bitte kein TOFU. http://learn.to/quote

- Warum ignorierst Du Heikos Empfehlung

>> Eventuell würde ich die Query-Variable per echo vorher ausgeben. Dann
>> kannst Du gucken, was an mySQL geschickt wird.
>> Schätze, er kommt mit der Variable im Query-String nicht zurecht...

Die Fehlermeldung deutet nämlich darauf hin, daß eine der Variablen, die
Du in den Query verbastelst, offenbar eine 'Resource id' darstellt, und
zwar die mit der #26. Die Fehlermeldung sagt Dir zwar, was falsch ist,
aber nicht die Stelle im Query. Dieses anzuzeigen wäre deshalb der
nächste logische Schritt.

Deine Feld- und Variablenbezeichner sind übrigens nicht sehr sprechend...


Thomas

Re: Fehlermeldung

am 07.08.2006 23:38:14 von Norbert Melzer

Am Mon, 07 Aug 2006 23:19:48 +0200 schrieb Thomas Rachel:

> Daniel Schmidt wrote:
>
>> Hallo Heiko,
>
> Warum nur Heiko?
>
>> mit dem mysql_error() kommt folgende Fehlermeldung:
>> You have an error in your SQL syntax. Check the manual that corresponds
>> to your MySQL server version for the right syntax to use near 'Resource
>> id #26' at line 1

> Die Fehlermeldung deutet nämlich darauf hin, daß eine der Variablen, die
> Du in den Query verbastelst, offenbar eine 'Resource id' darstellt, und
> zwar die mit der #26. Die Fehlermeldung sagt Dir zwar, was falsch ist,
> aber nicht die Stelle im Query. Dieses anzuzeigen wäre deshalb der
> nächste logische Schritt.

Tja, und die Empfehlung mit den geschweiften Klammern [1] ignoriert er
auch gekonnt, und ich wette 50 Kopeken daß es exakt an dem Objekt
liegt in seinem Query...

Hält jemand dagegen?

Fußnoten:
[1] 1phpusgm4bhrm$.dlg@news.nobbz.de

Re: Fehlermeldung

am 07.08.2006 23:50:38 von Daniel Schmidt

Hallo Newsgroup,

das Problem war wie sooft eine Doppelbelegun von Varibalen im komplexen
Aufbau des Scripts - trotzdem Danke.


Grüße Daniel