Ronny_LE: MySQL Abfrage bringt nichts trotz Fehlerfreiheit

Hi,

folgende Abfrage führt zu keiner Ausgabe (nur in PHP).

$abfrage = "select logs.* FROM logs NATURAL LEFT JOIN votes WHERE votes.page_id = 5 AND votes.query = '.$query.';";  
$ergebnis_2 = mysql_query($abfrage);  
$row = mysql_fetch_object($ergebnis_2);  
echo "<br />error: ".mysql_error()."<br />";  
echo "errno: ".mysql_errno()."<br />";  
echo "<br />IP-Adresse: ".$row->vote_ip;  
var_dump($ergebnis);

Wie ihr seht, habe ich schon versucht, mir eventuelle Fehler anzeigen zu lassen. Leider gibt es keine Fehler. (error->nichts;errno->0) Die Abfrage funktioniert in der Befehlszeile übrigens auch einwandfrei und führt zum gewünschten Ergebnis!!

var_dump()bringt mir folgendes "resource(4) of type (mysql result) "
Dazu habe ich im Forum das gefunden. Um es kurz zu machen, auch dort habe ich nichts gefunden.

Was mache ich falsch? Wie kann ich das Problem beheben?

Vielen Dank
Ronny

  1. Hi,

    folgende Abfrage führt zu keiner Ausgabe (nur in PHP).

    $abfrage = "select logs.* FROM logs NATURAL LEFT JOIN votes WHERE votes.page_id = 5 AND votes.query = '.$query.';";

    Kontrollausgabe machen.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hi,

      Kontrollausgabe machen.

      MfG ChrisB

      Was meinst Du jetzt genau damit?

      Grüße

      1. Hallo,

        Kontrollausgabe machen.
        Was meinst Du jetzt genau damit?

        wie sieht das Statement aus, das PHP an MySQL schickt. Da steht *kein* PHP-Code drin.

        Freundliche Grüße

        Vinzenz

        1. Hi Vinzenz,

          da bin ich grad überfragt. Ich bin Anfänger. Was ist ein Statement?
          Mit den Begrifflichkeiten habe ich es noch weniger wie mit PHP ;)

          wie sieht das Statement aus, das PHP an MySQL schickt. Da steht *kein* PHP-Code drin.

          Freundliche Grüße

          Vinzenz

          Danke
          Ronny

          1. Hallo,

            da bin ich grad überfragt. Ich bin Anfänger. Was ist ein Statement?

            eine Anweisung :-)

            Mit den Begrifflichkeiten habe ich es noch weniger wie mit PHP ;)

            Das solltest Du lernen.

            wie sieht das Statement aus, das PHP an MySQL schickt. Da steht *kein* PHP-Code drin.

            In

            $abfrage = "select logs.* FROM logs NATURAL LEFT JOIN votes WHERE votes.page_id = 5 AND votes.query = '.$query.';";

            baust Du eine SQL-Anweisung zusammen, die Du etwas später an MySQL übergibst. Die hier sinnvolle Kontrollausgabe wäre die Ausgabe des Inhaltes der Variablen $abfrage *nach* dieser Zeile.

            Wenn Du das herausgefunden hast - die echo-Anweisung kennst Du ja schon - erzählst Du uns, welchen Inhalt diese Variable hat.

            Freundliche Grüße

            Vinzenz

  2. Hi Ronny_LE!

    folgende Abfrage führt zu keiner Ausgabe (nur in PHP).

    Nicht mal

    error:
    errno:
    IP-Adresse:

    ?

    var_dump()bringt mir folgendes "resource(4) of type (mysql result) "

    var_dump(was?)?
    Du hast in deinem Beispielcode keine Variable $ergebnis definiert.
    Und wenn du auf das Ergebnis zugreifen möchtest, solltest du das schon über die Variable $row machen.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
  3. echo $begrüßung;

    $abfrage = "select logs.* FROM logs NATURAL LEFT JOIN votes WHERE votes.page_id = 5 AND votes.query = '.$query.';";

    $ergebnis_2 = mysql_query($abfrage);
    $row = mysql_fetch_object($ergebnis_2);
    echo "<br />error: ".mysql_error()."<br />";
    echo "errno: ".mysql_errno()."<br />";

    mysql_error() und mysql_errno() wirken auf die vorhergehende mysql_-Funktion. Bei den Fetch-Funktionen mysql_fetch_() gibt es niemals einen MySQL-Fehler. Wenn du Fehler abfragen willst, dann mach das direkt nach der Funktion, bei der sie aufgetreten sein können, also nach mysql_query() in deinem Fall. Übrigens liefern diejenigen Funktionen im Fehlerfall keine Ressourcenkennung sondern ein false als Ergebnis. Das darfst du nicht einfach so ignorieren. Das Scripts kann danach nicht mehr normal weiterlaufen, weil ohne Ressourcenkennung keine Datensätze gefetcht werden können. Konsultiere bitte stets das Handbuch, wie sich die Funktionen im Gut- und im Fehlerfall verhalten, werte diese Information aus und reagiere angemessen.

    var_dump($ergebnis);

      
    Du hast sicher vorher noch eine andere Abfrage laufen. Es nützt dir ja nichts, deren Ergebnisse zu untersuchen, wenn du hier stattdessen mit $ergebnis\_2 hantierst.  
      
    Standard-Hinweis: Außerdem kann ein auf E\_ALL gestelltes error\_reporting (und auf on gestelltes display\_errors) beim Fehlersuchen hilfreich sein. Du bekommst dann Meldungen über Zugriffe auf nicht initialisierte Variablen angezeigt, womit sich unter anderem Tippfehler bei Variablennamen finden lassen.  
      
      
    echo "$verabschiedung $name";