Zitat:
Zitat von Manko10 Google mal nach Boolscher Volltextsuche in MySQL. |
Genau das hat es gebracht. Super. Danke.
Nun stehe ich aber vor einem neuen Problem. In dem SQL String werden die Suchstrings "wert wert2" ind \"wert wert2\" geändert und dann funktioniert die Abfrage in der Datenbank nicht mehr.
Soweit bin ich bis jetzt:
PHP-Code:
// Datenbank abfragen
if (empty($_POST['VarSuchen']) || $_POST['VarSuchen'] == 0)
{
#$sql = "SELECT * FROM $tusers=a LEFT JOIN $tfilms=b ON a.UserID=b.UserID ORDER BY b.VidRegDatum DESC limit ".($limitlower-1).",".$perpage;
$sql = "SELECT * FROM $tusers=a, $tfilms=b WHERE a.UserID=b.UserID ORDER BY b.VidRegDatum DESC limit ".($limitlower-1).",".$perpage;
}
else
{
// POST-String abfragen
if ($_SERVER['REQUEST_METHOD'] == "POST")
{
$suchenPOST = $_POST["Suchen"];
}
else
{
$suchenPOST = $_GET["Suchen"];
}
// ++++++++++ Suchstring zerlegen +++++++++++
if (strchr($suchenPOST, ","))
{
$suchenPOST = str_replace(",","",$suchenPOST);
}
if (strchr($suchenPOST, chr(34)))
{
$suchenPOST = str_replace(chr(34),chr(39),$suchenPOST);
}
// Suchstring zerlegen
$SuchenArray = explode(" ", $suchenPOST);
// Abfrage nun durchführen
$sql = "SELECT * FROM $tusers=a, $tfilms=b WHERE MATCH (a.Branche,b.META,b.Describle) AGAINST ('";
#a.UserID=b.UserID
for ($x=0;$x<count($SuchenArray);$x++)
{
$sql .= "$SuchenArray[$x]";
if ($x<count($SuchenArray)-1)
{
$sql .= " ";
}
}
#$sql .= " group by b.VidID limit ".($limitlower-1).",".$perpage;
$sql .= "' IN BOOLEAN MODE) AND a.UserID=b.UserID group by b.VidID limit ".($limitlower-1).",".$perpage;
// Errorsuche
echo $sql;
#exit;
}
ich habe versucht, dieses Problem mit:
PHP-Code:
$suchenPOST = str_replace(chr(34),chr(39),$suchenPOST);
zu lösen, aber irgend wie habe ich noch einen Denkfehler.
ich möchte folgenden Ausdruck erreichen:
PHP-Code:
.... '"Wert wert2"' ....
also erst einfaches dann doppeltes Anführungszeichen dann Suchstring dann doppeltes und dann wieder einfaches Anführungszeichen.
Gebe ich das per phpMyAdmin genau so ein, wird die Abfrage exakt durch geführt. Lasse ich das durch PHP machen, ersetzt PHP die Zeichen, wie oben beschrieben und es werden NULL Datensätze gefunden.
Kotz-Brech-Würg
Vielen Dank für Eure Hinweise
Wellenbrecher