Oliver: Angezeigtes Datenbankergebnis sortieren per Mausklick

Hallo,
ich möchte meine Datenbankausgabe per Mausklick entweder auf oder Absteigend sortieren lassen (Windows konform).
Also ich mache über php eine select auf eine Datenbank. Das Ergebnis lasse ich mir in einer Tabelle anzeigen.
In der Abfrage gebe ich keine Sortierung an.
Nun möchte ich, dass wenn ich auf die ID klicke, absteigend und wenn ich noch mal klicke wieder aufsteigend sortiert wird.

Wie kann ich das realisieren??

Gruss
Oliver

  1. Hallo,

    schau Dir mal http://www.j-berkemeier.de/TableSort.html an

    Gruß, Jürgen

  2. Tag Oliver.

    ich möchte meine Datenbankausgabe per Mausklick entweder auf oder Absteigend sortieren lassen (Windows konform). Also ich mache über php eine select auf eine Datenbank. Das Ergebnis lasse ich mir in einer Tabelle anzeigen. In der Abfrage gebe ich keine Sortierung an. Nun möchte ich, dass wenn ich auf die ID klicke, absteigend und wenn ich noch mal klicke wieder aufsteigend sortiert wird.

    Lege doch auf die ID einen Link nach dem Schema "script.php?sort=auf" und lass das Script in Abhängigkeit des Wertes von »sort« eine neue Datenbankabfrage unter Zuhilfenahme der verfügbaren Sortierfunktion machen. Oder sortiere mit Hilfe von Javascript (was m.E. aber ziemlich aufwändig sein dürfte, siehe Posting von Jürgen).

    Siechfred

    --
    »Sie kochten heimlich mit Wasser und tranken öffentlich Wein.«
    1. Hallo Siechfred

      Lege doch auf die ID einen Link nach dem Schema "script.php?sort=auf" und lass das Script in Abhängigkeit des Wertes von »sort« eine neue Datenbankabfrage unter Zuhilfenahme der verfügbaren Sortierfunktion machen. Oder sortiere mit Hilfe von Javascript (was m.E. aber ziemlich aufwändig sein dürfte, siehe Posting von Jürgen).

      so hatte ich mir das ungefähr vorgestellt. Aber wie stelle ich die Abhängigkeit fest, bzw. wie setzte ich die.
      Wenn ich auf script.php?sort=auf klicke, müsste auf eine Variable sein, die dann entweder desc oder asc ist, aber wie setzte ich per link die Variable.  Ich kann doch eigentich nur <a href = script.php?sort=$order>  machen. Und womit setzte ich ob $order=desc oder $order=asc ist.

      Gruss
      Oliver

      1. Tag Oliver.

        so hatte ich mir das ungefähr vorgestellt. Aber wie stelle ich die Abhängigkeit fest, bzw. wie setzte ich die.

        Innerhalb des PHP-Scripts. Du fragst den Wert von sort mittels $_GET['sort'] ab und reagierst dann darauf. Wurde »auf« übergeben, gestaltest du die Abfrage entsprechend und legst in der neu generierten HTML-Seite auf die ID einen Link <a href="script.php?sort=DESC">.

        Das Ganze könnte vereinfacht (ohne jede Gültigkeitsprüfung) so aussehen:

        if($_GET['sort'] == 'ASC') {
          $order = 'ASC';
        }
        else {
          $order = 'DESC';
        }
        $statement = "SELECT spalten FROM tabelle ORDER BY id $order";
        $link = "<a href='$_SERVER['PHP_SELF']?sort=$order>ID</a>";

        Siechfred

        --
        »Sie kochten heimlich mit Wasser und tranken öffentlich Wein.«
        1. Da war doch noch ein Denkfehler:

          if($_GET['sort'] == 'auf') {
            $order = 'ASC';
            $href = 'ab';
          }
          else {
            $order = 'DESC';
            $href ='auf'
          }
          $statement = "SELECT spalten FROM tabelle ORDER BY id $order";
          $link = "<a href='$_SERVER['PHP_SELF']?sort=$href'>ID</a>";

          So ist's glaube ich besser :)

          Siechfred

          --
          »Sie kochten heimlich mit Wasser und tranken öffentlich Wein.«
          1. Hallo Siechfred,

            hat dann doch geklappt. Ich hatte den ersten Eintrag probiert, gepostet dass es nicht klappt, und dann erst die Korrektur gesehen.

            Danke für die Hilfe.
            Gruss
            Oliver

        2. Hallo Siechfred,

          ich habe deinen Vorschlag gerade mal probiert. Das klappt, aber leider nur bedingt. Die erste Sortierung also direkt beim Aufruf ist DESC. Beim klick auf den Link ASC. Wie bekomme ich es aber jetzt hin, wenn ich nochmal auf den Link klicke, das es wieder DESC ist??

          Gruss
          Oliver