Abfrage mit Platzhalter

kathi35

Grünschnabel
Hallo Leute,
ich habe ein kleines Problem bei einer Abfrage wo man (wenn die Suche es erfordert) auch Platzhalter ( ? oder * ) verwenden kann.

PHP:
if ($_POST['submit']) { 
  $formularfehler = 0;
     $empf = ($_POST['empf']);
     $auswahl = ($_POST['auswahl']);
     switch ($empf) {
         case "plz": break;
         case "ort": break;
         default: $formularfehler = 1;
     }
     if ($auswahl == "") {
        $formularfehler = 1;
     }
     if (!$formularfehler) {
        $sql = "SELECT * FROM adresse WHERE $empf LIKE '%".$auswahl."%' ";
}

Das Problemm:
Wenn ich jetzt z.B. nach einem PLZ suche, die mit " 39* " beginnen soll, kommt nichts.
Mit " 39 " kommt sowohl 2390 als auch 3920. (ist klar wegen '%".$auswahl."%' ).

Oder wenn ich " Baden " suche sollte nur Baden kommen und nicht Baden bei Wien.
Aber wenn ich " Baden* " eingebe sollte Baden und Baden bei Wien kommen.

Aber wie kann ich das in der if - Abfrage klären, wenn ich ein ? oder * eingebe.
Bitte um eure Hilfe lg kathi.
 
Zuletzt bearbeitet:
Moin,

momentan hast du ja bereits Platzhalter im Query stehen,

Wenn du stattdessen die Platzhalter im Query herausnimmst, und dafür deine eigenen Platzhalter im Suchstring durch die MySQL-Platzhalter ersetzt, sollte das funktionieren.
 
Zurück