Verknüpfung in der WHERE Klausel

Hallo, wiedermal…
ich versuche gerade eine Suche über mehrere datenfelder.
sollte ja eigendlich nicht schwer sein, aber es funktioniert einfach nicht.

die suchmaske enthält folgende felder.
Branche (DropdownListe) postleitzahlenbereich (die ersten beiden Nummern) und eine Textsuche über die restlichen felder.
der nutzer sollte jetzt entweder aus den branchen auswählen oder alle dienstleister im Postleitzahlenberreich 01 finden oder alle „illustratoren“ im postleitzahlenberreich 10 etc.
aber ich glaube die verknüfung der Bedingungen ist falsch, oder?!
hier ist sie:

$sql = 'SELECT \*';
$sql .= 'FROM dienstleister ';
$sql .= 'WHERE (branche =\''.$branche.'\') AND ';
$sql .= '(PLZ LIKE \''.$plzsearch.'%\') AND ';
$sql .= '(dtext LIKE \'%'.$search.'%\') OR ';
$sql .= '(firma LIKE \'%'.$search.'%\') OR ';
$sql .= '(vorname LIKE \'%'.$search.'%\') OR ';
$sql .= '(nachname LIKE \'%'.$search.'%\') OR ';
$sql .= '(ort LIKE \'%'.$search.'%\') '; 
$sql .= 'ORDER BY update\_datum ';

hier ist noch der link zu dem dilemma
http://www.autorinnen.de/dienstleister.php
Vielen Dank im vorraus für evt hilfen
gruß
marcus

Hallo Marcus,

ich VERMUTE einmal, dass Du folgendes meinst:
ERGEBNIS = (branche AND PLZ AND (dtext OR …))

Dann fehlt nur eine Klammerund:

$sql = ‚SELECT *‘;
$sql .= ‚FROM dienstleister ‚;
$sql .= ‚WHERE (branche =‘‘.$branche.‘’) AND ‚;
$sql .= ‚(PLZ LIKE ‚‘.$plzsearch.‘%‘) AND (’; // Klammer am Ende der Zeile eingefuegt
$sql .= ‚(dtext LIKE ‚%‘.$search.‘%’) OR ‚;
$sql .= ‚(firma LIKE ‚%‘.$search.‘%‘) OR ‚;
$sql .= ‚(vorname LIKE ‚%‘.$search.‘%‘) OR ‚;
$sql .= ‚(nachname LIKE ‚%‘.$search.‘%‘) OR ‚;
$sql .= ‚(ort LIKE ‚%‘.$search.‘%‘)) '; // Klammer am Ende der Zeile eingefuegt.
$sql .= 'ORDER BY update_datum ';

Ausserdem: Gaaaaaanz wichtig:
Escape UNBEDINGT Deine $search-Variable

$search = addslashes($search)

Da Du hier einen Link zu Deiner Seite angegeben hast, will ich lieber nicht posten, was sonst alles möglich wäre…

Viele Grüße
Thomas