MySQL problem mit LIKE

david07

Mitglied
Hi,

bin grade dabei für ein Projekt eine Datenbank-Suche zu schreiben. Nun habe ich ein Problem dem LIKE und mehreren begriffen.

hier der code:

PHP:
    $sql = "SELECT `kundennr`, `name`, `vorname`
            FROM `shop_kunden`
            WHERE
            `kundennr` LIKE '%".$_POST["suchstring"]."%'
            OR `name` LIKE '%".$_POST["suchstring"]."%'
            OR `vorname` LIKE '%".$_POST["suchstring"]."%'";

soweit funktioniert es sehr gut.

Allerdings möchte ich das die suche auch arbeitet wenn mehrere begriffe in $_POST["suchstring"] stehen. Dachte dabei an:

PHP:
$search=str_replace(" ","','",$_POST["suchstring"];
 $sql = "SELECT `kundennr`, `name`, `vorname`
            FROM `shop_kunden`
            WHERE
            `kundennr` LIKE '%".$search."%'
            OR `name` LIKE '%".$search."%'
            OR `vorname` LIKE '%".$search."%'";

funktioniert aber nicht.

Nun bekomme ich immer die Fehlermeldung:

Errormessage: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''Mustermann%' OR `name` LIKE '%002','Mustermann%'


Stehe total auf dem Schlauch. Es muss doch möglich sein mehrere begriffe in der LIKE abfrage zu haben:

PHP:
LIKE '%term1','term2%'

Was macvhe ich falsch?
 
Folgendes ist möglich:
PHP:
$terms = array_map('mysql_real_escape_string', preg_split('/\s+/', trim($_POST["suchstring"])));
$sql = "SELECT `kundennr`, `name`, `vorname`
            FROM `shop_kunden`
            WHERE
            `kundennr` LIKE '%".implode("%' OR `kundennr` LIKE '%", $terms)."%'
            OR `name` LIKE '%".implode("%' OR `name` LIKE '%", $terms)."%'
            OR `vorname` LIKE '%".implode("%' OR `vorname` LIKE '%", $terms)."%'";
 
Zurück