PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Sortierung mit Werten aus einem Formular (https://www.php-resource.de/forum/php-developer-forum/38306-sortierung-mit-werten-aus-einem-formular.html)

SOB22 04-05-2004 16:07

Sortierung mit Werten aus einem Formular
 
Hallo,

ich habe ein Formular, in dem man diverse Werte eingeben und auswählen kann (u.a Termin, Mitarbeiter, Projekt usw.)
über einen Button wird das Formular abgeschickt und die gefunden Treffer aus der Datenbank, in einer Tabelle dargestellt.
Das funktioniert auch wunderbar.

Aber ich möchte jetzt die Sortierung nach den einzelnen Punkten (Mitarbeiter, Termin usw.) ermöglichen.

Ich habe schon verschiedene Dinge ausprobiert.
z.B. alle Werte über JavaScript zu übergeben. Aber das ist nicht besonders sauber.

Ich wollte es nun mit einer Session versuchen. Also das ich alle Werte mit in die Session schreibe. Nur erscheint mir das auch recht umständlich. Gibt es eine einfachere Möglichkeit die Daten beizubehalten?!

Meiner Select-Anweisung:

PHP-Code:

$sql "SELECT
        t.prioritaet, t.status_erledigt, t.gesperrt, t.termin, t.termin_ende, t.dauer_geplant,
        t.dauer_ist, t.bemerkung, t.zusatzaufwand, t.oeffentlich, t.todo, k.firma, p.projektname,
        t.z_cm_todo_id "
;

$sql .= "FROM
         z_cm_todo AS t
         LEFT JOIN z_cm_projekt_2_z_cm_todo AS pt ON pt.todoid = t.z_cm_todo_id
         LEFT JOIN z_cm_projekt_bk AS p ON p.datensatzid = pt.projektid
         LEFT JOIN z_crm_kunden AS k ON k.datensatzid = p.kunde
         LEFT JOIN z_cm_user AS us ON us.todoid = pt.todoid
         LEFT JOIN users AS u ON u.userid = us.userid "
;

$sql .= "WHERE
         t.status_erledigt BETWEEN '$_POST[text_erledigt_von]' AND '$_POST[text_erledigt_bis]' AND
         t.prioritaet BETWEEN '$_POST[text_prioritaet_von]' AND '$_POST[text_prioritaet_bis]' AND "
;

$sql .= "t.termin BETWEEN'" mk_SQLdate($_POST[termin_von]) . "'" " AND " "'" mk_SQLdate($_POST[termin_bis]) . "' AND ";
$sql .= "t.termin_ende BETWEEN'" mk_SQLdate($_POST[termin_von_ende]) . "'" " AND " "'" mk_SQLdate($_POST[termin_bis_ende]) . "' ";

if(
$_SESSION['nurmeine'] == 1$sql .= "AND u.username = '$_SESSION[web_username]' ";
if(
$_POST['filter_gesperrt'] != 'false'$sql .= "AND t.gesperrt = '$_POST[filter_gesperrt]' ";
if(
$_POST['filter_zusatzaufwand'] != 'false'$sql .= "AND t.zusatzaufwand = '$_POST[filter_zusatzaufwand]' ";
if(
$_POST['filter_oeffentlich'] != 'false' && isset($_POST['filter_oeffentlich'])) $sql .= "AND t.oeffentlich = '$_POST[filter_oeffentlich]' ";
if(
$_GET['fkunde'] != 'false' && isset($_GET['fkunde'])) $sql .= "AND k.datensatzid = '$_GET[fkunde]' ";
if(
$_GET['fprojekt'] != 'false' && isset($_GET['fprojekt'])) $sql .= "AND p.datensatzid = '$_GET[fprojekt]' ";
if(
$_POST['filter_user'] != 'false' && isset($_POST['filter_user'])) $sql .= "AND u.userid = '$_POST[filter_user]' ";

$sql .= "GROUP BY t.z_cm_todo_id ";

// Hier wollte ich dann einfach die ORDER BY Funktion eibauen, also das worauf der User klickt, z.B

$sql .= "ORDER BY $order ";
// $order wäre dann z.B. k.firma 

Mein Probelm ist das ich ja alle Daten aus dem Formular verliere, sobald ich auf einen Link klicke und ich finde keine saubere Möglichkeit dies zu lösen!

Ich wäre für jeden Tipp sehr dankbar.

Gruß
Tim

Seccho 04-05-2004 16:45

Wieso machst Du kein select feld ins Formular auf dem die Sortierung ausgewählt werden kann? Hab ich meistens so gelöst...

SOB22 04-05-2004 16:54

ist ne gute Idee.
Aber leider habe ich die Vorgabe das so zu verwirklichen ;(

SOB22 04-05-2004 17:46

ich habe es jetzt doch mit der SESSION gemacht. Funktioniert sehr gut und ist garnicht so unkompfortabel, wie es im ersten moment schien.


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:13 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG