Datum in Tabelle sortieren

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

  • Datum in Tabelle sortieren

    Hallo Forum,
    ich habe eine Sortiermöglichkeit in eine dyn. erzeugte Tabelle eingebaut.
    Es soll die Möglichkeit bestehen nach auf- bzw. absteigendem Datum zu sortieren. Ich nutze eine Session-Variable die entweder aus "ASC" oder "DESC" steht und im SQL Statement eingebaut wird
    PHP Code:
    // START - Sortierung des Datums
    if(!isset($order_default))

        
    $order_default "ASC";
        
    $order $order_default;
    }
    if(!isset(
    $_SESSION["order"]))
    {
        
    $_SESSION["order"] = $order_default;
        
    $order $_SESSION["order"];
    }
    elseif(
    $_SESSION["order"] == "ASC")
    {
        
    $order "DESC";
        
    $_SESSION["order"] = $order;
    }
    else
    {
        
    $order "ASC";
        
    $_SESSION["order"] = $order;
    }
    // ENDE - Sortierung des Datums

    //SQL Statement
    $sql "SELECT EVENT_ID, TITEL, .........TELEFON, EMAIL FROM DB.EK_EVENTS ORDER BY START_DATUM " .$order
    Über einen Link im Tabellenkopf starte ich die Sortierung
    PHP Code:
    <? echo "<a href='loeschen.php?ORDER=" . $_SESSION['order'] ."'>Startdatum</a>
    Es gibt noch eine "aendern.php" und "alle_anzeigen.php" die ebenfalls
    die Sortierung nutzen - aber mit eigenen Session-Variablen.
    Jetzt hab ich dass Problem dass ich beim Wechseln , und danach beim
    Zurückkehren auf die Seite die Sortierung ändere, da sie in der Session gespeichert ist. Es soll aber beim Neuaufruf der Seite immer ASC sortiert werden. Wie könnte ich das lösen - statisch? aber wie?

    Danke und Gruß
    Tolwin

  • #2
    Also ich verstehe den Zweck deiner Variablen - Umsortiererei da nicht so ganz. Woher beziehst du denn deinen Sortierwunsch?
    Wenn der aus einem Formular kommt (habs gefunden, kannst ja dann anstelle Request Get nehmen), kannst du doch einfach am Anfang deines Scriptes schreiben

    PHP Code:
    if (!isset($_SESSION['order'])) $_SESSION['order'] = 'ASC'
    und dann

    PHP Code:
    if (isset($_REQUEST['order'])) {
      
    $_SESSION['order'] = $_REQUEST['order'];

    machen.


    In deinem Query benutzt du dann einfach die Sessionvariable
    PHP Code:
    "...  DB.EK_EVENTS ORDER BY START_DATUM " .$_SESSION['order'
    Vergiss aber nicht die vom Formular übergebenen Daten zu überprüfen!
    Last edited by frabron; 10-08-2005, 09:27.

    Comment


    • #3
      Werde es mal versuchen.
      Kann sein, dass ich zu umständlich gedacht habe.
      Danke und Gruß
      Tolwin

      Comment


      • #4
        Habe es mal versucht
        PHP Code:
        if (!isset($_SESSION['order'])) { $_SESSION['order'] = "ASC"; }
        if (isset($_GET['ORDER'])) {$_SESSION['order'] = $_GET['ORDER']; }

        $sql = "SELECT EVENT_ID, TITEL.......TELEFON, EMAIL FROM DB.EK_EVENTS ORDER BY START_DATUM " .$_SESSION['order'];

        //Sortierlink Startdatum
        <? echo "<a href='alle_events.php?ORDER=" . $_SESSION['order'] ."'>Startdatum</a>
        mir ist noch nicht klar wie das funktionieren soll?

        Comment


        • #5
          Keine Ahnung wo jetzt dein Problem ist. Deine Fehlerbeschreibung lässt da etwas zu wünschen übrig.

          Wenn du hängst, weil du nicht weisst, wie du sortieren sollst, mach doch deinen Link etwa so

          Code:
          <a href='alle_events.php?ORDER="ASC">Auf ...
          <a href='alle_events.php?ORDER="DESC">Ab ...

          Comment


          • #6
            Hab es jetzt anders gelöst:
            PHP Code:
            if (!isset($_SESSION['order_loeschen'])) { $_SESSION['order_loeschen'] = "ASC"; }
            if($_GET['ORDER'] == "ASC") 
            {
                $_SESSION['order_loeschen'] = "DESC";
            }
            else
            {
                $_SESSION['order_loeschen'] = "ASC";
            }
            $sql = "SELECT EVENT_ID, TITEL......., EMAIL FROM DB.EK_EVENTS ORDER BY START_DATUM " .$_SESSION['order_loeschen'];

            //LINK
            <? echo "<a href='loeschen.php?ORDER=" . $_SESSION['order_loeschen'] ."'>Startdatum</a>
            Gruß
            Tolwin

            Comment


            • #7
              In der Query nicht bei ORDER angeben ist das selbe als wenn du ASC hhinschreibst. ASC ist die standardsortierung.

              Comment

              Working...
              X