php such kriterien nur bei eingabe
-
hey ich mache gerade so ein html-forumular worüber man meine mysql durchsuchen kann.
ich werde die felder aus und setze dann dementsprechend den sql-query.
aber wie mache ich das, dass felder die nicht ausgefüllt wurden nicht berücksichtigt werden wenn ich mein query habe
wo
....WHERE name=prnr, ....
wo wenn derjenige z.B. prnr nicht ausgefüllt hat, muss ich WHERE ....pr_nr= ja weglassen ...wie mach ich das dynmaisch?
-
Vorschlag: Vorhandene Bedingungen in ein Array packen und daraus den Query bauen.
$conditions = array(); if (Feld ausgefüllt) { $conditions[] = 'name=' . $name; } if (!empty($conditions)) { $query = "SELECT .. WHERE"; $add_and = false; foreach ($conditions as $c) { if ($add_and) { $query .= ' AND'; } else { $add_and = true; } $query .= ' ' . $c; } //... }
-
oder:
$sql = " SELECT * FROM Tabelle WHERE 1 " . (isset($_POST['name'])&&trim($_POST['name'])!='' ? " AND name = " . mysql_real_escape_string($_POST['name']) : "") . (isset($_POST['test'])&&trim($_POST['test'])!='' ? " AND test = " . mysql_real_escape_string($_POST['test']) : ""); // ...
LG