Hallo Zusammen, ich versuche meiner Tabellenbasierten Datenbankübersicht (HTML, PHP) eine Sortierung zu verpassen.
In der Tabelle werden etliche Datenbankeinträge ausgelesen und dargestellt. Unter anderem werden Sachen wie "Standort", "Status", "Datum" etc. pp angeboten.
Im Tabellenkopf habe ich hierfür SELECT Boxen, welche über ein OnChange event direkt getriggert werden
onchange="document.forms.showAK.submit()"
Im PHP Code gehts dann weiter mit
IF (isset($_GET['showAK'] )) ... etc
Der SELECT dahinter befiehlt dann das sortieren nach dem ausgelesenen Wert von "showAK". Das funktioniert soweit.
Jetzt ist das aber total blöd, da ich nach dieser Logik nur nach einem Merkmal gleichzeitig sortieren kann. Ich möchte jetzt erreichen, dass sich die Seite "showAK" beispielsweise merkt, und ein zusätzliches "showOrt" noch mit dazunimmt, und im SELECT bearbeitet
Meine aktuellen Bemühungen sehen so aus :
$listing = array();
$_SESSION['listing'] = array();
IF (isset($_GET['showAK'] )) { $ListAkademie = $_GET['showAK']; $listing[] = " KERN_AKADEMIE = '$ListAkademie' "; }
$_SESSION['listing'] = $listing;
$multisort = implode(" AND ", $_SESSION['listing']);
$db->query("SELECT $Cols FROM DATABASE WHERE ($multisort)
Die Idee dahinter war nun die, bei gesetztem Selectfeld (showAK etc...) den Wert aufzufangen (der Übersicht halber zunächst in eine temporäre Variable), und anschließend in ein Array zu packen, welches gleich den entsprechenden Teil des SELECT Befehls enthält.
Dies habe ich jetzt genau so wie oben für mehrere Spalten bzw. Selectfelder so geschrieben, sodass alle nötigen Werte zum Sortieren aufgefangen werden können.
Anschließend kommt das $array in ein $_SESSIONarray
Über ein Implode soll nun das notwendige "AND" zwischen die Werte des Arrays geschrieben werden.
Der abschließende SELECT Befehl verwendet nun die Variable "$multisort", die durch implode erstellt wird.
Grundlegend funktioniert das, aber nur einmal bzw. für eine Sortiermöglichkeit. Als würde die Session['listing'] jedes mal überschrieben werden. In der Variable steht immer nur ein Wert, sodass auch implode nie ein AND dazwischen bastelt.
Mit Session Arrays habe ich kaum Erfahrungen, bin mir aber sicher das ich hier etwas wichtiges nicht bedenke :(
Könnt ihr mir vielleicht, wieder, aushelfen? Eventuell ist mein Weg auch generell Käse und das ginge viel eleganter ?
Viele Grüße, und bleibt alle gesund