bumms: Ausgabe in Php/MySQL

Hi,

ich bin noch etwas neue in der MySQL-Materie und habe folgendes Problem: Das hier ist meine Zeile...

$result  =  mysql_query( "select * from  $table WHERE (kategorie='nachrichten') and date=curdate() Order By date DESC LIMIT 10");

Ich möchte nur die Nachrichten des heutigen Tages ausgeben, allerdings funktioniert das nicht und ich bekomme lediglich einen Newseintrag angezeigt. Kann mir jemand weiterhelfen? Diese MySQL-Referenzen haben mich nicht schlau gemacht.

Danke!

  1. Hallo,

    $result  =  mysql_query( "select * from  $table WHERE (kategorie='nachrichten') and date=curdate() Order By date DESC LIMIT 10");

    Ich möchte nur die Nachrichten des heutigen Tages ausgeben, allerdings funktioniert das nicht und ich bekomme lediglich einen Newseintrag angezeigt. Kann mir jemand weiterhelfen? Diese MySQL-Referenzen haben mich nicht schlau gemacht.

    Mit deiner SQL-Abfrage holst du wenn dann nur 10 Nachrichten ab: LIMIT 10. Und wenn es nur eine Nachricht des Tages gibt, wird nur eine Zurückgegeben. Interessant wäre noch zu erfahren, wie du denn das Abfrageergebnis bearbeitest? Wie gibst du deine Nachrichten aus. Vielleicht liegts ja gar nicht am SQL-Statement sondern ganz woanders ...

    Wieso willst du noch nach date sortieren (ORDER BY date) wenn du sowieso nur ein einziges Datum haben willst?

    Gruß,
    Leeloo

    --
    "Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra
  2. Moin!

    ich bin noch etwas neue in der MySQL-Materie und habe folgendes Problem: Das hier ist meine Zeile...

    $result  =  mysql_query( "select * from  $table WHERE (kategorie='nachrichten') and date=curdate() Order By date DESC LIMIT 10");

    Ich hoffe doch, dass $table vorher einmal durch mysql_real_escape_string() gejagt worden ist …

    Wieso ist eigentlich der erste Teil der Abfrage geklammert?

    Viele Grüße,
    Robert

    1. echo $begrüßung;

      $result  =  mysql_query( "select * from  $table WHERE (kategorie='nachrichten') and date=curdate() Order By date DESC LIMIT 10");

      Ich hoffe doch, dass $table vorher einmal durch mysql_real_escape_string() gejagt worden ist …

      Das hoffe ich nicht, denn das wäre die falsche Methode, mit Bezeichnern umzugehen. Außerdem wäre dann noch zur falschen Maskierung eine fehlende Quotierung zu beklagen. Für die Maskierung von Bezeichnern gibt es keine vorgefertigte Funktion. Außerdem besteht immer noch die Hoffung, dass $table nicht aus einer Benutzereingabe sondern aus "kontrolliertem Anbau" kommt.

      echo "$verabschiedung $name";

      1. Moin!

        $result  =  mysql_query( "select * from  $table WHERE (kategorie='nachrichten') and date=curdate() Order By date DESC LIMIT 10");

        Ich hoffe doch, dass $table vorher einmal durch mysql_real_escape_string() gejagt worden ist …

        Das hoffe ich nicht, denn das wäre die falsche Methode, mit Bezeichnern umzugehen.

        Da hast du natürlich vollkommen Recht, mein Colt ging vorschnell los. Schade, dass es keine Funktion mysql_real_escape_identifier() gibt – aber vielleicht das auch daran, dass gerade MySQL sehr liberal mit erlaubten Bezeichnern umgeht. Ist diese Syntax überhaupt SQL-konform?

        Außerdem besteht immer noch die Hoffung, dass $table nicht aus einer Benutzereingabe sondern aus "kontrolliertem Anbau" kommt.

        Hoffentlich.

        […] ich bin noch etwas neue in der MySQL-Materie […]

        Schönes Wochenende,
        Robert