Hi,
also ich habe mal im Internet gesucht nach einem fertigen Script, das mir Suchbegriffe aus einem Textfeld ordentlich unterteilt (auch mit Anführungszeichen eingeschlossene u.s.w.).
Leider bringt mir meine Page nach dem Einbau des Scripts schon die Fehlermeldung, dass da unerwartete eckige Klammern wären und 2 Zeilen weiter war nochmals ein "parse-error", den ich allerdings grade vergessen hab *g*
Hier das Script... Kommentare habe ich bereits rausgelöscht:
Meine erste Frage: Was stimmt hier nicht?
Meine zweite Frage: Kann ich als Abfrage-Befehl dann einfach folgenden nehmen, oder gibt es wegen den Arrays Probleme?
Hoffe, ihr könnt mir helfen
also ich habe mal im Internet gesucht nach einem fertigen Script, das mir Suchbegriffe aus einem Textfeld ordentlich unterteilt (auch mit Anführungszeichen eingeschlossene u.s.w.).
Leider bringt mir meine Page nach dem Einbau des Scripts schon die Fehlermeldung, dass da unerwartete eckige Klammern wären und 2 Zeilen weiter war nochmals ein "parse-error", den ich allerdings grade vergessen hab *g*
Hier das Script... Kommentare habe ich bereits rausgelöscht:
PHP:
<?php
$Suchwoerter = $_POST['Suchbegriffe'];
$mit_Anfuehrungszeichen = array();
$ohne_Anfuehrungszeichen = array();
$verbotene_Zeichen = '/[,\\\+"']/U';
preg_match_all('/("|\')(.*)("|\')/U', $Suchwoerter, $mit_Anfuehrungszeichen);
$Suchwoerter = preg_replace('/("|\')(.*)("|\')/U', '', $Suchwoerter);
$ohne_Anfuehrungszeichen = explode(' ', $Suchwoerter);
$Suchwoerter = array_merge($mit_Anfuehrungszeichen[0], $ohne_Anfuehrungszeichen);
function filtern($Suchwort)
{
global $verbotene_Zeichen;
$Kontrolle = preg_replace($verbotene_Zeichen, '', $Suchwort);
$Kontrolle = str_replace(' ', '', $Kontrolle);
if (strlen($Kontrolle) >= 3) ) return true;
}
$Suchwoerter = array_filter($Suchwoerter, 'filtern');
function korrigieren($Suchwort)
{
global $verbotene_Zeichen;
$Suchbegriff = trim($Suchwort);
$Suchbegriff = preg_replace($verbotene_Zeichen, '', $Suchbegriff);
$Suchbegriff = preg_replace('/\040+/', ' ', $Suchbegriff);
return $Suchbegriff;
}
$Suchwoerter = array_map('korrigieren', $Suchwoerter);
?>
Meine erste Frage: Was stimmt hier nicht?
Meine zweite Frage: Kann ich als Abfrage-Befehl dann einfach folgenden nehmen, oder gibt es wegen den Arrays Probleme?
PHP:
SELECT * FROM datenbank WHERE (spalte1 Like '%$Suchwoerter%') OR (spalte2 Like '%$Suchwoerter%') OR (spalte3 Like '%$Suchwoerter%');
Hoffe, ihr könnt mir helfen
