Sortierung nach Datum

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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!)

      Comment


      • #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....

        Comment


        • #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...

          Comment


          • #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>"

            Comment

            Working...
            X