Tabelle mit bestimmter Sortierung aufrufen

T

Testdirektor

Guest
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

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

</head>
<body bgcolor="#FFFFFF" topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
<div id ="main">
...

[Der Link für die Sortierung in der Tabellenüberschrift]
<a href="list.php?order=Depot">Depot<?php $myData->setOrderImage("Depot"); ?></a>

und die Function
<?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.
sad.gif


Hoffe nun das mir einer von euch weiterhelfen kann. Hierfür im voraus schon einmal vielen Dank.
 
Wenn ich das mit meinem müden Augen richtig sehe, dann sollte es reichen wenn Du

$_GET['order'] ( = Kunde )
$_GET['page'] ( = 1)

übergibst ... vorrausgesetzt in der Tabelle "anbindungen" gibt es das Feld "Kunde" überhaupt ...
 
Jo, mein Vorredner hat Recht.

Diese beiden Zeilen sollten helfen:
CODE if (isset($_GET['order'])) $myData->setOrderingInfo($_GET['order']);
if (isset($_GET['page'])) $myData->actPageNr = $_GET['page'];
 
QUOTE (Sebastian Schenck @ Mo 3.09.2007, 10:05) Jo, mein Vorredner hat Recht.

Diese beiden Zeilen sollten helfen:

CODE if (isset($_GET['order'])) $myData->setOrderingInfo($_GET['order']);
if (isset($_GET['page'])) $myData->actPageNr = $_GET['page'];


Die übergebe ich schon, in der list.php

<?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']);

oder verstehe ich dich jetzt mit übergeben falsch bzw. muß ich die Übergabe ändern ?
unsure.gif
 
Da wertest Du die schon aus, erstmal müssen die Werte überhaupt in die list.php reinkommen, ähnlich wie Du am Ende Deines ersten Posts geschrieben hast.

Im Stile von list.php?order=Kunde&page=1

So wie das hier, solltest Du eigentlich kopieren können
QUOTE <a href="list.php?order=Depot">[...]</a>
 
Zurück
Oben