kphaber321: MySQL: Fehler in der Abfrage?!?

Hallo Forenvolk!
Ich rätsel und probier jetzt schon seit einiger Zeit an folgendem Problem, was ich irgendwie alleine nicht hinbekomme:
Ich habe eine Datenbankabfrage, die mir alle Posts der letzten 24h geben soll

<?php

$maxtime = date("U") - 86400; // 86400 = 24h in sekunden ;-)

$dbhandle = mysql_connect("localhost","***","***");
$db = mysql_select_db("***", $dbhandle);

$sql = 'SELECT * FROM mychat ORDER BY unixtime WHERE unixtime >= $maxtime';
$abfrage = mysql_query("$sql");

echo "<table>";
while (list($id, $unixtime, $time, $name, $text) = mysql_fetch_row($abfrage)){
 echo "<tr><td>$time [$name]:</td><td>$text</td></tr>";
}

?>

und es kommt folgender Fehler dabei heraus:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/mychat/show.php on line 18

Weiß jemand was ich falsch gemacht habe???

MfG
kphaber321

--
sh:( fu:| ch:? rl:? br:$ n4:~ ie:| mo:| va:| de:] zu:} fl:| js:) ss:| ls:[
http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A%28+fu%3A%7C+ch%3A%3F+rl%3A%3F+br%3A%24+n4%3A%7E+ie%3A%7C+mo%3A%7C+va%3A%7C+de%3A%5D+zu%3A%7D+fl%3A%7C+js%3A%29+ss%3A%7C+ls%3A%5B+
  1. Moin!

    und es kommt folgender Fehler dabei heraus:

    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/mychat/show.php on line 18

    Weiß jemand was ich falsch gemacht habe???

    Wenn du eine standardmäßige Fehlerabfrage machen würdest, würde MySQL dir von sich aus sagen, was es an dem Query nicht mag. mysql_error() heißt die Funktion, die du aufrufen solltest, wenn mysql_query false ergibt.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Danke für die Antwort!

      Wenn du eine standardmäßige Fehlerabfrage machen würdest, würde MySQL dir von sich aus sagen, was es an dem Query nicht mag. mysql_error() heißt die Funktion, die du aufrufen solltest, wenn mysql_query false ergibt.

      Guut, das hab ich dann erstmal gemacht! Das Ergebnis:

      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 'WHERE unixtime >= 1193001552' at line 1

      Was mich allerdings nicht schlauer macht, da ich vermutet hab, dass an diesem Punkt der Fehler liegt!
      Warum allerdings ist mir weiterhin rätselhaft.

      Noch eine weitere Hilfe?

      MfG
      kphaber321

      --
      sh:( fu:| ch:? rl:? br:$ n4:~ ie:| mo:| va:| de:] zu:} fl:| js:) ss:| ls:[
      http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A%28+fu%3A%7C+ch%3A%3F+rl%3A%3F+br%3A%24+n4%3A%7E+ie%3A%7C+mo%3A%7C+va%3A%7C+de%3A%5D+zu%3A%7D+fl%3A%7C+js%3A%29+ss%3A%7C+ls%3A%5B+
      1. Achso...
        Fast vergessen, ich habe eine Zeile geändert:

        $sql = 'SELECT * FROM mychat ORDER BY unixtime WHERE unixtime >= '.$maxtime;

        Aber wie gesagt. Es bringt mich nicht sehr viel weiter!

        MfG
        kphaber321

        --
        sh:( fu:| ch:? rl:? br:$ n4:~ ie:| mo:| va:| de:] zu:} fl:| js:) ss:| ls:[
        http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A%28+fu%3A%7C+ch%3A%3F+rl%3A%3F+br%3A%24+n4%3A%7E+ie%3A%7C+mo%3A%7C+va%3A%7C+de%3A%5D+zu%3A%7D+fl%3A%7C+js%3A%29+ss%3A%7C+ls%3A%5B+
        1. Hi,

          $sql = 'SELECT * FROM mychat ORDER BY unixtime WHERE unixtime >= '.$maxtime;

          Welchen Datentyp hat denn die Spalte unixtime? Wenn es ein String ist muss dein fertiges SQL-Statement so in der Art ausschauen:

          ... WHERE unixtime >= '1193001552'

          mfG,
          steckl

          1. Hallo!

            Welchen Datentyp hat denn die Spalte unixtime? Wenn es ein String ist muss dein fertiges SQL-Statement so in der Art ausschauen:

            Ich hab einfach Text genommen... klappte sonst immer prima!

            ... WHERE unixtime >= '1193001552'

            Ich hab jetzt mal 2 verschiedene Sachen probiert:
            1)
            ...
            $sql = 'SELECT * FROM mychat WHERE unixtime >= '.$maxtime.' ORDER BY unixtime;';
            echo $sql; // nur zum angucken
            mysql_query("$sql") or die(mysql_error());
            ...

            ...
            $sql = 'SELECT * FROM mychat WHERE unixtime >= ''.$maxtime.'' ORDER BY unixtime;';
            echo $sql; // nur zum angucken
            mysql_query("$sql") or die(mysql_error());
            ...

            Es ging beiden nicht und gibt aus:

            SELECT * FROM mychat WHERE unixtime >= '1193057346' ORDER BY unixtime;
            Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/mychat/show.php on line 23

            Ich hab irgendwie das Gefühl, dass ich irgendwas einfach nich sehe, oder ich einfach nur zu dumm bin und niie wieder eine Datenbank benutzen sollte :-( oder beides...

            Bitte nochmal Hilfe, sonst raste ich noch voll aus ^^

            MfG
            kphaber321

            --
            sh:( fu:| ch:? rl:? br:$ n4:~ ie:| mo:| va:| de:] zu:} fl:| js:) ss:| ls:[
            http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A%28+fu%3A%7C+ch%3A%3F+rl%3A%3F+br%3A%24+n4%3A%7E+ie%3A%7C+mo%3A%7C+va%3A%7C+de%3A%5D+zu%3A%7D+fl%3A%7C+js%3A%29+ss%3A%7C+ls%3A%5B+
            1. Es tut mir leid! Es geht wohl!!! Hab nur eben einen Fehler gemacht und hier
              $abfrage = mysql_query("$sql") or die(mysql_error());
              das $abfrage = vergessen!!! Dann kann er natürlich das mysql_fetch_row natürlich nicht ausführen!!!

              Danke für die Hilfen!

              MfG
              Jonas

      2. Moin!

        Was mich allerdings nicht schlauer macht, da ich vermutet hab, dass an diesem Punkt der Fehler liegt!
        Warum allerdings ist mir weiterhin rätselhaft.

        Mir nicht. Bei SQL kommt es auf die Reihenfolge der Bestandteile an, du darfst nicht wild mischen.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
  2. Moin kphaber321,

    $sql = 'SELECT * FROM mychat ORDER BY unixtime WHERE unixtime >= $maxtime';
    $abfrage = mysql_query("$sql");

    Sven hatte es ja bereits angedeuted. Du darfst nicht mischen, es kommt auf die Reihenfolge an.

    Das WHERE kommt vor ORDER BY

    regds
    Mike©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.