hier kümmt die überdrüber aufgeblasene orderby variante:
PHP-Code:
$ordersql="";
switch ($_GET[orderby])
{
case 'datum':
$_GET[datum_order]=='DESC'? $datum='ASC': $datum='DESC';
$ordersql=" datum $_GET[datum_order]";
break;
case 'name':
$_GET[name_order]=='DESC'? $name='ASC': $name='DESC';
$ordersql=" name $_GET[name_order]";
break;
case '....':
.....
default:
$ordersql=" ID ";
}
echo "<a href="dieseite.php?datum_order=$datum&orderby='datum'">Datum</a>";
echo "<a href="dieseite.php?name_order=$name&orderby='name'">Name</a>";
$sql="
SELECT * FROM tabelle
where Wherebedingung
order by
$ordersql";
bedienungsanleitung:
switch ($_GET[orderby]) --> bestimmt nach welchem feld sortiert werden soll.
für jedes feld muss dann halt wie die oben gezeigten beispiele eingetragen werden.
$_GET[datum_order]=='DESC'? $datum='ASC': $datum='DESC';
--> ist ein kompakter if. der tut nix anderes, als asc auf desc zu switchen und umgekehrt.
$orderby=" datum $_GET[datum_order]"; --> sortiert nach dem alten (übergebenen) order by wert
default:
$orderby=" ID "; --> wenn nix übergeben wurde dann nach dem schlüssel sortieren (oder was auch immer)
echo <a href="\dieseite.php?datum_order=$datum&orderby='datum'\">Datum</a>
echo <a href="\dieseite.php? --> hier erfolgt die ausgabe mit dem neuen order by wert ($datum) sowie die definition des sortierfeldes (orderby=datum)
$sql="
SELECT * FROM tabelle
where Wherebedingung
order by
$orderby "; --> baut den SQL-string zusammen.
nicht getestet - sollte aber so funktionieren.
lf