Tach!
Es handelt sich um eine kleine Adresssammlung. Über ein HTML-Formular kann der Seitenbesucher per Checkbox wählen, wo der ebenfalls dort einzugebende Suchbegriff gesucht werden soll (Spalten mit Name, Ort, Postleitzahl etc.) und wählte zuvor per Radiobutton aus, in welchem Gebiet er das Stichwort suchen möchte ($_POST[thema]).
Mach doch eine Abfrage und stelle für diese die Bedingungen zusammen anstatt für jede Bedingung eine eigene Abfrage zu erstellen.
Nach diversen Kontrollen (Mindesteingrenzungen, real_escape_string usw.) habe ich nun ...
Von mysql_real_escape_string() ist aber im gezeigten Code nichts zu sehen. Es ist nicht günstig, das an anderer Stelle als beim Statement-Zusammenbau zu machen. Wenn du dir wegen der einzubauenden Funktionsaufrufe Sorgen um die Lesbarkeit des Statements machst, dann nimm sprintf().
Ansonsten habe ich noch nicht herausbekommen, wie ich vom Besucher eventuell eingegebene _ und % (Platzhalter) herausfiltern kann. Bei allen meiner Ersetzungs-/Maskierungsversuche kam nur ein entstelltes Datenergebnis heraus :-(
Wie man diese Zeichen maskiert, steht im MySQL-Handbuch auf der Seite, die LIKE beschreibt. PHP bietet dafür keine eigene Funktion, du kannst das mit einfachem String-Ersetzung hinbekommen (beispielsweise strtr(), zweite Variante).
dedlfix.