Ich würde mir den ganzen if-Kram am Anfang schon dadurch sparen, dass ich die Informationen zur Sortierspalte und zur Sortierrichtung getrennt übergebe, z. B.
http://example.com/doku.php?order=status&isDesc=0
oder
http://example.com/doku.php?order=datum&isDesc=1
Im PHP-Code würde ich dann $_GET["order"] mittels in_array
prüfen, ob nur erlaubte Werte benutzt wurden, um SQL-Injections entgegenzuwirken.
Dann würde ich den Code vernünftig einrücken und umbrechen, was ihn ja im engsten Sinne
Zitat:
Zitat von Besth
schön
|
machen würde.
Außerdem würde ich niemals % als Trennzeichen in einer URL verwenden, weil es im Zusammenhang mit URL-Encoding eine Sonderbedeutung hat. Warum nicht das Komma, Semikolon etc?
Den echo-Fasching ganz unten könnte man aufgrund der massiven Wiederholungen mit dem ersten genannten Punkt und einer Schleife über die möglichen Sortierspalten säubern.
Bedingungen fasse ich soweit wie möglich zusammen, so dass entweder gerade noch die Logik erkennbar ist oder andernfalls ein Kommentar aufklärt, was gemeint ist. Auf deinen Code bezogen, würde ich aus
PHP-Code:
(isset($_GET['order'])?($_GET['order']=='datumup'?'datumdown':'datumup'):'datumdown')
sowas machen:
PHP-Code:
(!isset($_GET['order']) || $_GET['order'] == 'datumup' ? 'datumdown' : 'datumup')
Ist aber nur als Beispiel zu verstehen, weil das ja auch durch Punkt 1 hinfällig werden würde.
Gruß,
Amica