Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 04-05-2004, 16:07
SOB22
 Registrierter Benutzer
Links : Onlinestatus : SOB22 ist offline
Registriert seit: Jan 2004
Ort: Ratingen
Beiträge: 201
SOB22 ist zur Zeit noch ein unbeschriebenes Blatt
Question 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
Mit Zitat antworten