Markus: Supplied argument is not a valid MySQL result

Tagchen,

$beispiel_sql="SELECT * FROM beispiel WHERE text LIKE '%$query%' ORDER BY id DESC";
$beispiel_result=mysql_query($beispiel_sql);
while($beispiel=mysql_fetch_array($beispiel_result)) {
do(something);
}

Hier kriege ich den Fehler

Warning: Supplied argument is not a valid MySQL result resource in [c:\foo] on line 25

Zeile 25 ist die while-Zeile. Wo liegt der Fehler? Und nein - do(something); ist es nicht.. ;)

MfG
Markus

  1. Hi,

    Zeile 25 ist die while-Zeile. Wo liegt der Fehler?

    im SQL-Statement.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      danke für die ... ausführliche ... Antwort.

      a) SQL-Statement ist hier dei $beispiel_sql, richtig?

      b) Nungut, try and error ist eine hübsche Methode, nur wäre ich für eine detaillierte Antwort dankbar.

      Mfg
      Markus

      1. Hi,

        danke für die ... ausführliche ... Antwort.

        nun ja. Das selbe Problem hatten schon n Leute vor Dir, mit n >> 10. Niemand hat Lust Antworten zu geben, die er schon hinreichend oft gegeben hat.

        a) SQL-Statement ist hier dei $beispiel_sql, richtig?

        Ja.

        b) Nungut, try and error ist eine hübsche Methode, nur wäre ich für eine detaillierte Antwort dankbar.

        Der Fehler liegt im SQL-Statement. Lass es Dir ausgeben und untersuche es entsprechend.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Abend,

          Der Fehler liegt im SQL-Statement. Lass es Dir ausgeben und untersuche es entsprechend.

          *sigh* ..

          $beispiel_sql="SELECT * FROM beispiel WHERE text LIKE '%$query%' ORDER BY id DESC";

          Variable korrekt mit " " angefangen und beendet, in der Variable keine weiteren ", sondern '.
          Von SELECT bis WHERE richtig, text korrekte Spalte.
          LIKE richtig in ' gesetzt, Variable existiert.
          ORDER BY stimmt
          ; vorhanden

          Ich konnte keinen Fehler finden, tut mir leid.

          MfG
          Markus

          1. Hello,

            Cheatah ist auch etwas sehr kurz angebunden heute...

            Der Fehler liegt im SQL-Statement. Lass es Dir ausgeben und untersuche es entsprechend.

            *sigh* ..

            $beispiel_sql="SELECT * FROM beispiel WHERE text LIKE '%$query%' ORDER BY id DESC";

            $res = mysql_query($beispiel,$con);

            if (!$res)
            {
              echo "\n<br />SQL: ".mysql_error()."<br />\n;"
            }

            Dann weißt Du mehr.

            Mein Tipp:

            $query = mysql_escape_string(stripslashes($query));

            wobei stripshlashes davon abhängt, woher die Variable $query stammt und ob get_magic_quotes_gpc() == true   ist.

            Das soll als Anregung erst einmla wieder reichen

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            1. Uhm.. ich habe kein Wort verstanden..

              Nunja, tut mir leid. Mit der Rate-mal-Methode komme ich nich weiter. Dann muss ich meine Suchfunktion wohl vorerst knicken und ein Forum suchen, dass mir die Antwort als ganze Beispiele und ohne indirekte "du hast nicht alle Seiten des Manuals gelesen, selbst schuld"-Beiträge gibt. =/

              Schade eigentlich
              Markus

              1. Hello,

                Uhm.. ich habe kein Wort verstanden..

                Das ist nicht schlimm, dann kann man nochmal fragen.

                Das Prinzip hier lautet: Eingabe -> Verarbeitung -> Ausgabe

                WennDu kein Input lieferst, können wir nix verarbeiten und auch nix ausgeben, außer Fehlanzeigen.

                Nunja, tut mir leid. Mit der Rate-mal-Methode komme ich nich weiter. Dann muss ich meine Suchfunktion wohl vorerst knicken und ein Forum suchen, dass mir die Antwort als ganze Beispiele und ohne indirekte "du hast nicht alle Seiten des Manuals gelesen, selbst schuld"-Beiträge gibt. =/

                Hier kann ich mir aber die Frge nicht verkneifen:  "Tickst Du noch richtig?"

                Ich habe Dir explizit geschrieben, was Du in Dein Script einbauen sollst.
                Den kleinen Fehler bei $beispiel -> $beispiel_sql  hast Du ja bestimmt bemerkt beim Ausprobieren.

                Und nun hätte ich gerne das, was Echo Dir ausgegeben hat.
                Dann können wir weitersehen.

                Liebe Grüße aus http://www.braunschweig.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              2. Hallo,

                Nunja, tut mir leid. Mit der Rate-mal-Methode komme ich nich weiter.

                Du sollst auch nicht raten, sondern wissen.

                Dann muss ich meine Suchfunktion wohl vorerst knicken und ein Forum suchen, dass mir die Antwort als ganze Beispiele und ohne indirekte "du hast nicht alle Seiten des Manuals gelesen, selbst schuld"-Beiträge gibt. =/

                Dann mach mal. Aber sei gewarnt, wenn Du nicht lernst, die Hand loszulassen, wirst Du nie selbst gehen lernen. Andererseits ist nicht jeder zum Programmierer geboren, genausowenig, wie jeder musikalisch begabt ist.

                Schade eigentlich

                Frage Dich, für wen das letztendlich schade sien wird;-)

                Grüße
                  Klaus

          2. Moin!

            Der Fehler liegt im SQL-Statement. Lass es Dir ausgeben und untersuche es entsprechend.

            *sigh* ..

            $beispiel_sql="SELECT * FROM beispiel WHERE text LIKE '%$query%' ORDER BY id DESC";

            Variable korrekt mit " " angefangen und beendet, in der Variable keine weiteren ", sondern '.
            Von SELECT bis WHERE richtig, text korrekte Spalte.
            LIKE richtig in ' gesetzt, Variable existiert.
            ORDER BY stimmt
            ; vorhanden

            Ich konnte keinen Fehler finden, tut mir leid.

            MySQL konnte einen finden - das reicht ja auch. Und die Funktion mysql_error() sagt dir, welcher das ist.

            Das Problem ist, dass du nur die Vorschrift für die Zusammensetzung des SQL-Statements geprüft hast, nicht aber das Ergebnis. Du fügst Variablen ein, die das Resultat in Richtung "ungültiges SQL" verändern können.

            - Sven Rautenberg

            --
            "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
            (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)