Einzelnen Beitrag anzeigen
Alt 09.02.2010, 12:33  
Dark Guardian
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.197
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist ein sehr geschätzer MenschDark Guardian ist ein sehr geschätzer MenschDark Guardian ist ein sehr geschätzer MenschDark Guardian ist ein sehr geschätzer Mensch
Standard

Mach es doch einfach folgendermaßen::

PHP-Code:
$sql "SELECT * FROM test";

$where "WHERE 1=1";

if (!empty(
$marke)) {
   
$where .= " AND Marke LIKE '%" mysql_real_escape_string($marke) . "%'";
}

if (!empty(
$suchwort) && $suchwort != 'Produktfinder') {
   
$where .= " AND MATCH (Bezeichnung, Beschreibung, Marke)  AGAINST('" mysql_real_escape_string($suchwort) . "')";

Erläuterung: Du definierst zunächst den Query ohne WHERE Klausel. Dann erzeugst du die WHERE Klausel mit der Bedingung 1=1. Das hat für die Ergebnisse keine Auswirkungen aber auf den Query->Syntax denn wie du siehst werden die beiden Abfragen für die Suchfelder per AND angehängt. Um umständliche Abfragen zu vermeiden starten beide Befehle immer mit AND. In Kombination mit dem 1=1 ist es nun egal welche Bedingung als erstes angehängt wird und ob schon eine Bedingung angehängt wurde.
__________________
Möglicherweise kommt zu "Menschen lügen" auch "Menschen bauen Mist".

Geändert von Dark Guardian (09.02.2010 um 12:36 Uhr).
Dark Guardian ist offline