Sortierung nach Datum

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sortierung nach Datum

    Hi,

    habe mich schon ein wenig hier durchgewühlt, aber nicht wirklich eine Lösung für mein problem gefunden!

    Habe eine Film Liste - der Anwender soll nun die Möglichkeit haben diese Liste nach dem Datum des Eintrage zu sortieren!
    Datum wird im Format timestamp(14) gespeichert!

    Mein Code sieht wie folgt aus:

    PHP-Code:
        echo "<td><a href='f.php?sort=film_name'>Film</a></td>";
        echo 
    "<td>CDs</td>";
        echo 
    "<td><a href='f.php?sort=laenge'>Länge</a></td>";
        echo 
    "<td><a href='f.php?sort=jahr'>Jahr</td>";
        echo 
    "<td><a href='f.php?sort=format'>Format</td>";
        echo 
    "<td><a href='f.php?sort=sprache'>Sprache</td>";
        echo 
    "<td><a href='f.php?sort=genre'>Genre</td>";
        echo 
    "<td><a href='f.php?sort=datum'>Added</td></tr>";
        
        
    $orderby = !$_GET[sort]?"film_name":$_GET[sort];
            
    $query mysql_query("SELECT *,date_format(date,'%d.%m.%Y') as datum FROM film ORDER BY $orderby ASC");

    while (
    $daten mysql_fetch_array($query))

    Mein problem: er sortiert nach dem Monatstag, aber nicht nach Jahr -> Monat -> Monatstag!

    Wie kann ich das ändern? Und als zweites Sortierkriterium soll er dann nach Alphabet (Filmname) sortieren!

    Wäre nett wenn mir jemand helfen könnte!

  • #2
    Wie soll denn nach Jahr sortiert werden? Gibt es eine Spalte Jahr?
    Wenn nicht dann brauchst Du bei Jahr das
    YEAR(datum);
    Ein zweites Order machst Du einfach so:
    ORDER BY order1, order2
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Danke für die Antwort.

      Es gibt eine Spalte "Added", die auch angezeigt wird. Im Format 25.01.2003

      date_format(date,'%d.%m.%Y')

      Die Augabe in der Spalte soll halt wie oben bechrieben erfolgen, d.h. der neueste Eintrag oben (soll erfolgen, wenn man dieses Sortierkriterium auswählt!)

      Kommentar


      • #4
        OK - er sortiert nun nach Datum - als zweites Kriterium soll er nach Filmname sortieren - habe es wie folgt gelöst - nur leider funktioniert es nicht! Jemand eine Idee?

        Vor allem wäre es schön, wenn er alles ASC sortieren würde, nur beim Datum DESC, so dass die neuesten oben stehen!

        PHP-Code:
        print "</td></tr>";
        echo 
        "<table width='750' border='1' cellspacing=0 cellpadding=3 class=m>";
            echo 
        "<tr>";
            echo 
        "<td><a href='f.php?sort=film_name'>Film</a></td>";
            echo 
        "<td>CDs</td>";
            echo 
        "<td><a href='f.php?sort=laenge'>Länge</a></td>";
            echo 
        "<td><a href='f.php?sort=jahr'>Jahr</td>";
            echo 
        "<td><a href='f.php?sort=format'>Format</td>";
            echo 
        "<td><a href='f.php?sort=sprache'>Sprache</td>";
            echo 
        "<td><a href='f.php?sort=genre'>Genre</td>";
            echo 
        "<td><a href='f.php?sort=date'>Added</td></tr>";
            
            
        $orderby = !$_GET[sort]?"film_name":$_GET[sort];
                
        $query mysql_query("SELECT *,date_format(date,'%d.%m.%Y') as datum FROM film ORDER BY $orderby ASC, film_name ASC"); 
        Ach ja - evtl. verschieben ins SQL Forum? Hab mich vertan....

        Kommentar


        • #5
          PHP-Code:
          $orderby = !$_GET[sort]?"film_name":$_GET[sort];
          $orderby.=($orderby=='date')?' DESC':' ASC';
          $query mysql_query("SELECT *,date_format(date,'%d.%m.%Y') as datum FROM film ORDER BY $orderby, film_name ASC"); 
          ungetestet
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Danke . aber leider funktioniert es nicht. Ers ortiert nun zuerst nach Datum, auch das neueste oben, aber das zweite Sortierkriterium nach film_name scheint er gar nicht zu berücksichtigen! Kann es evtl. an meiner Ausgabe liegen?

            PHP-Code:
            while ($daten mysql_fetch_array($query))
            {
            print 
            "<tr><td class=\"film\" onMouseOver=\"this.style.backgroundColor='#536a88'; 
            this.style.cursor='hand';\" 
            onMouseOut=\"this.style.backgroundColor='#022744';\" onClick=\"window.location.href='show_d.php?id=
            $daten[id]'\">
            <a href=\"show_d.php?id=
            $daten[id]\">$daten[film_name]</a></td>";
            print 
            "<td class=\"film_c\">$daten[cds]</td>
            <td class=\"film_c\">
            $daten[laenge]&nbsp;min</td>
            <td class=\"film_c\">
            $daten[jahr]</td>
            <td class=\"film_c\">
            $daten[format]</td>";
            if (
            $daten[sprache] =="de" || $daten[sprache] =="en" 
            {
            print 
            "<td class=\"film_c\"><img src=\"../pics/$daten[sprache].gif\" border=0></td>";
            }
            else
            {
            print 
            "<td>$daten[sprache]</td>";
            }
            print 
            "<td class=\"film\">$daten[genre]</td>";
            print 
            "<td class=\"film\">$daten[datum]</td>
            </td></tr>"
            ;
            }
            print 
            "</table><br>"

            Kommentar

            Lädt...
            X