[PHP5] Tabellenausgabe sortiert mit Link

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

  • [PHP5] Tabellenausgabe sortiert mit Link

    Hallo Gemeinde, hoffe Ihr könnt mir helfen. Komme im Moment nicht so recht weiter und bin so langsam am verzweifeln. Mein Problem liegt in dem Aufruf einer Tabelle und deren Sortierung. Ich rufe per Link ein PHP-Skript auf, die index.php:
    PHP Code:
    <?php

         header
    ("Location: list.php");
    ?>
    welche die list.php aufruft. In dieser list.php ist das Ausgabeformat der Tabelle hinterlegt sowie die Möglichkeit durch Anklicken der Tabellenüberschrift die Tabelle entsprechend auf- bzw. absteigend zu sortieren

    [Der Beginn meiner list.php]
    PHP Code:
    <?php
    include('general/header.inc');
    require_once(
    'general/general.php');

    if (isset(
    $_GET['order']))     $myData->setOrderingInfo($_GET['order']);
    if (isset(
    $_GET['page']))      $myData->actPageNr $_GET['page'];
    if (isset(
    $_POST['formdata'])) $myData->getWhereClause($_POST['formdata']);

    $maxRecord 999;
    $sqlbase "SELECT * FROM anbindungen WHERE Depot=7000".$myData->getOrderString();
    $sql $sqlbase."LIMIT ".(($myData->actPageNr-1)*$maxRecord).",".$maxRecord;
    $Result         $MyDb->f_ExecuteSql($sql);
    $ResultRowNr    $MyDb->f_GetSelectedRows($Result);
    $ResultTotalRow $MyDb->f_ExecuteSql($sqlbase);
    $totalRows      $MyDb->f_GetSelectedRows($ResultTotalRow);

    ?>
    <html>
    <head>
    <title>Anbindungen</title>
    <link rel="stylesheet" href="../../css/linkformatblanko.css" type="text/css">
    ...
    [Der Link für die Sortierung in der Tabellenüberschrift]
    PHP Code:
    <a href="list.php?order=Depot">Depot<?php $myData->setOrderImage("Depot"); ?></a>
    und die Function
    PHP Code:
    <?php
      
    class usersession{
        var 
    $orderField;
        var 
    $orderDirection;
        var 
    $orderCounter=0;
        var 
    $whereStr='';
        var 
    $filterdata;
        var 
    $limit;
        var 
    $lastSite;
        var 
    $actPageNr 1;
        var 
    $counter=0;

        function 
    setOrderingInfo($field=""){
            
            if (
    $field == $this->orderField$this->orderCounter++;
            if (
    $this->orderCounter<3) {
                
    $this->orderField $field;
                
    $this->orderDirection = ($this->orderDirection == 'ASC') ? "DESC":"ASC";
                
    $this->orderCounter++;
            }
            else {
                
    $this->orderCounter 0;
                
    $this->orderField "";
                
    $this->orderDirection "";
            }
        }
        
        function 
    setOrderImage($field){
          if (
    $field == $this->orderField){
            if (
    $this->orderDirection == "ASC") echo '<img src="style/up.gif" \>';
            if (
    $this->orderDirection == "DESC") echo '<img src="style/down.gif" \>';
            else echo 
    "";
          }
          else {
            echo 
    "";
          }
        }

        function 
    getOrderString(){
            if (isset(
    $this->orderField) && $this->orderField != "") {
                return 
    " ORDER BY $this->orderField $this->orderDirection ";
            }
        }

      }
      
    ?>
    Das ganze funktioniert auch soweit schon teilweise (Tabelle wird ausgegeben, durch anklicken der Tabellenüberschrift läßt sich diese auf-/absteigend sortieren), nur möchte ich jetzt, das, wenn der Besucher die Ausgabeseite der Tabelle aufruft (also per Link die index.php aufruft), diese als erstes immer sortiert nach dem Feld Kunde und aufsteigend ausgegeben wird. Derzeit wird die Tabelle z.B. aufsteigend sortiert ausgegeben, klicke ich nochmal den Link an wird die Tabelle absteigend sortiert ausgegeben bei nochmaligem anklicken wieder aufsteigend usw.

    Wie kann ich dies realisieren ? Ich habe im Link schon alles mögliche mitgegeben, z.B. ...index.php?order=Kunde&sort=asc
    oder in der index.php den Link entsprechend angepaßt
    ...list.php?order=Kunde&sort=asc - leider ohne Erfolg.

    Hoffe nun das mir einer von euch weiterhelfen kann. Hierfür im voraus schon einmal vielen Dank.
    Last edited by Testdirector; 03-09-2007, 15:02.

  • #2
    Lies und befolge unsere Regeln, dann antwortet vielleicht jemand...

    Comment


    • #3
      So, entsprechend angepaßt mit der Bitte um Hilfe. THX

      Comment


      • #4
        header("Location: list.php");
        Auch wenn's toleriert wurd, der Locationheader erwartet eine komplette url. http://...

        nur möchte ich jetzt, das, wenn der Besucher die Ausgabeseite der Tabelle aufruft (also per Link die index.php aufruft), diese als erstes immer sortiert nach dem Feld Kunde und aufsteigend ausgegeben wird.
        dann pass doch oben den location-header an, wenn du sowieso schon mal dran bist.

        oder in der index.php den Link entsprechend angepaßt
        ...list.php?order=Kunde&sort=asc - leider ohne Erfolg.
        Du verwendest den Begriff Link, aber es handelt sich nicht um einen Link. Trotzdem ist das die richtige stelle.

        Comment

        Working...
        X