Hi Leutz,
ich möchte meine Query so umschreiben, dass an Stelle von LIKE ein = fungiert.
Die Query welche ich umformen möchte, sieht folgender Maßen aus:
Das echo hierzu:
SELECT DISTINCT * FROM Tabelle WHERE (MATCH (Title,ShortDescription,LongDescription,Category,B rand) AGAINST('%schuhe%') AND Brand LIKE '%%')
So bald ich aus dem LIKE ein = mache und dabei die %-Zeichen weg lasse, habe ich das Problem das wenn ein User bei seiner Suche das Feld "Brand" auslässt, meine SUMA nur nach Datensätze sucht bei denen das Feld "Brand" in meiner MySQL-Tabelle leer ist.
Bsp.: Der User tippt in das Suchfeld den Begriff Schuhe ein und lässt das Sprungmenü (Brand) bei seiner Suche aus, weil ihm die Marke egal ist.
Die Suma spuckt dann aber nur Datensätze bzw. Schuhe aus, die über keine Marke verfügen.
...und meine Explode-Funktion funzt dabei auch nicht mehr.
Hier die Query:
Im Grunde genommen lautet meine Frage, wie ich an Stelle von LIKE ein = setzen kann, ohne dass sich die Suchfunktion ändert.
ich möchte meine Query so umschreiben, dass an Stelle von LIKE ein = fungiert.
Die Query welche ich umformen möchte, sieht folgender Maßen aus:
PHP-Code:
$suchwort_array = explode(" ", $suchwort);
$query = 'SELECT DISTINCT * FROM tabelle WHERE ';
for($i=0; $i < count($suchwort_array); $i++)
{
$query .= "(MATCH (Title,ShortDescription,LongDescription,Category,Brand) AGAINST('%" . mysql_real_escape_string($suchwort_array[$i]) . "%') AND Brand LIKE '%" . mysql_real_escape_string($brand) . "%')";
if($i<count($suchwort_array)-1)
{
$query .= ' and ';
}
}
$result = mysql_query($query);
SELECT DISTINCT * FROM Tabelle WHERE (MATCH (Title,ShortDescription,LongDescription,Category,B rand) AGAINST('%schuhe%') AND Brand LIKE '%%')
So bald ich aus dem LIKE ein = mache und dabei die %-Zeichen weg lasse, habe ich das Problem das wenn ein User bei seiner Suche das Feld "Brand" auslässt, meine SUMA nur nach Datensätze sucht bei denen das Feld "Brand" in meiner MySQL-Tabelle leer ist.
Bsp.: Der User tippt in das Suchfeld den Begriff Schuhe ein und lässt das Sprungmenü (Brand) bei seiner Suche aus, weil ihm die Marke egal ist.
Die Suma spuckt dann aber nur Datensätze bzw. Schuhe aus, die über keine Marke verfügen.
...und meine Explode-Funktion funzt dabei auch nicht mehr.
Hier die Query:
PHP-Code:
$suchwort_array = explode(" ", $suchwort);
$query = 'SELECT DISTINCT * FROM Tabelle WHERE ';
for($i=0; $i < count($suchwort_array); $i++)
{
$query .= "(MATCH (Title,ShortDescription,LongDescription,Category,Brand) AGAINST('%" . mysql_real_escape_string($suchwort_array[$i]) . "%') AND Brand = '" . mysql_real_escape_string($brand) . "')";
if($i<count($suchwort_array)-1)
{
$query .= ' and ';
}
}
$result = mysql_query($query);
Kommentar