Ja bym to zrobił tak:
Przy każdym wywołaniu strony wysyłał bym wszystkie parametry (przy wejściu na daną tabelę można użyć domyślnych)
Załóżmy, że parametry to
table - nazwa tabeli
sort - rodzaj sortowania
rows - od którego wiersza pokazywać (paginacja)
Wchodząc na tabelę "klienci" wywołuję na przykład "skrypt.php?table=klienci&sort=date DESC&rows=0"
Następnie w menu robie taki myk:
Menu wyboru tabeli:
Kod
<a href="skrypt.php?table=klienci&sort=<?php echo $domyslny_sort;?>&rows=0">Klienci</a>
<a href="skrypt.php?table=produkty&sort=<?php echo $domyslny_sort;?>&rows=0">Produkty</a>
<a href="skrypt.php?table=firmy&sort=<?php echo $domyslny_sort;?>&rows=0">Firmy</a>
Menu wyboru sortowania:
Kod
<a href="skrypt.php?table=<?php echo $_GET['table'];?>&sort=name DESC&rows=<?php echo $_GET['rows']?>">Sortuj po nazwie malejąco</a>
<a href="skrypt.php?table=<?php echo $_GET['table'];?>&sort=name ASC&rows=<?php echo $_GET['rows']?>">Sortuj po nazwie rosnąco</a>
<a href="skrypt.php?table=<?php echo $_GET['table'];?>&sort=data DESC&rows=<?php echo $_GET['rows']?>>">Sortuj po dacie malejąco</a>
<a href="skrypt.php?table=<?php echo $_GET['table'];?>&sort=data ASC&rows=<?php echo $_GET['rows']?>">Sortuj po dacie rosnąco</a>
itd. itp..
Wydaje mi się to najbardziej prostym rozwiązaniem - zawsze wysyłasz zmienne GET, które określają co i jak ma być pobrane z bazy. Kontrolujesz je poprzez PHP i wyświetlasz odpowiednio w linkach na stronie - nic nie stoi też na przeszkodzie podpiąć tego pod formularz pod hidden'y jak Kolega wyżej napisał

HTH!