Christopher: Order by... Probleme?!

Grüß euch folgendes Problem. Er sollte mir die Ausgabe in JAHR MONAT TAG Ordnen

sprich

2004 September 04
2004 September 03
2002 Oktober 18
usw...

Macht er aber nicht wieso?
DANKE WEBER CH.

Mein Code::

<?
include('config/mysql.inc.php');

$tabelle = "news";

$dbverbindung = mysql_connect ($host, $user, $password);
$dbanfrage = "SELECT * FROM $tabelle ORDER by jahr, monat, tag LIMIT 8";
$result = mysql_db_query ($dbname, $dbanfrage, $dbverbindung);
$id = $_GET['id'] + 1;

while ($ausgabe = mysql_fetch_array ($result))

{
echo ("

  1. yo,

    Macht er aber nicht wieso?

    pobleme mit sorierungen liegt oftmals am falschen datentyp. die frage ist also, welchen datentyp haben deine felder, danach richtet sich auch die sortierung.

    Ilja

    1. Haben

      varchar(2)  für Tag
      varchar(20)  für Monat
      varchar(4)  für Jahr

      1. yo,

        varchar(2)  für Tag
        varchar(20)  für Monat
        varchar(4)  für Jahr

        das geht auch so nicht, bei jahr mag das noch hinkommen, aber spätestens bei monaten, wird die --> alphabetische <-- sortierung ein wenig was durcheinander bringen. zum beispiel ist Februar bei dir vor Januar. und auch bei tagen sollte das zu problemen führen, zum beispiel wenn keine führende 0 dabei ist, etc.

        ergo, mach eine spalte mit dem typ datum draus und formatiere die ausgabe. dann klappt das auch mit dem nachbarn....

        Ilja

      2. hi,

        Haben

        varchar(2)  für Tag
        varchar(20)  für Monat
        varchar(4)  für Jahr

        das ist denkabr ungünstig.

        du solltest einen der von mysql bereitgestellten datums- und zeit-typen nehmen, um das datum abzuspeichern.

        danach lässt sich wunderbar einfach sortieren.
        und wenn du die einzelnen felder für die ausgabe haben willst, dann ermittelst du dir diese in der query mit den datums- und zeit-funktionen.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
  2. Hallo Christopher,

    Wue ist denn die MySQL-Tabelle organisiert, dh. in welcher Form ist das Datum abgelegt?

    Gruß,

    Dieter

  3. Hello,

    $dbanfrage = "SELECT * FROM $tabelle ORDER by jahr, monat, tag LIMIT 8";

    Welchen Spaltentyp haben denn jahr, monat und tag?

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau