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:
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
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
Ich wäre für jeden Tipp sehr dankbar.
Gruß
Tim
Kommentar