Tach!
Auch mit recht Übersichtlichem und knappen Code
Oft geht es besser.
IF (isset($_GET['showAK'] )) { $_SESSION['listing'][0]['AK'] = "KERN_AKADEMIE = " . "'" . $_GET['showAK'] . "'"; } $multisort = implode(" AND ",$_SESSION['listing'][0]);
So funktioniert es einwandfrei. Bei Neuwahl der selben Selectbox (bspw. ShowAK) wird überschrieben.
Und wie wird dem Nutzer angezeigt, welche Felder (und vielleicht die Reihenfolge) für die Sortierung verwendet werden? Ich meine, wie merkst du dir diese Angaben zwischen den Requests, um daraufhin den HTML-Code entsprechend zu beeinflussen? Wobei … das was du machst ist ja keine Sortierung sondern eine Filterung. Auch da möchte der Anwender sicher sehen, wonach gefiltert wurde.
Du merkst dir gerade fertige (abgesehen vom SQL-Injection-Problem) SQL-Schnipsel. Diese sind für andere Zwecke wenig brauchbar. Besser wäre es, die Rohdaten aufzuheben, und den Mechanismus für das Zusammenstellen des SQL-Statements separat zu programmieren.
Wenn du nun anfängst das SQL-Injection-Problem zu beheben, musst du das in allen Zeilen wiederholen. Auch wenn du Änderungen oder Ergänzungen am SQL-Code vornehmen möchtest, musst du das in allen Zeilen einbauen. Trenne lieber Verarbeitung der Rohdaten und die Logik, die nur für die Ausgabe relevant ist. Das EVA-Prinzip kann man auch im Kleinen anwenden. Damit wird dann zwar deine implode-Zeile etwas aufweniger, du entschlackst dafür aber die obigen Zeilen.
dedlfix.