Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Volltextsuche [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Volltextsuche


 
Benji
15-03-2007, 19:08 
 
Hallo,

ich habe folgende Volltextsuche:


for($i=0;$i<count($query_elements);$i++)
{
$such_string = $query_elements[$i];

$pos = strpos($such_string, "?");

if ($pos != "")
{
$suchstring = str_replace("?","%","$such_string");
}
else
{
$suchstring = $such_string;
}

if($stichwort_suche)
{
$stichwort_suche .= " $verknuepfungs_art"; /// oder AND (wie du willst)
}

$stichwort_suche .= " (kdnr Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " branche Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " geschaeftszweck Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " anrede Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " titel Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " vorname LIKE '%$query_elements[$i]%' OR";
$stichwort_suche .= " name Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " strasse Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " keyword Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " plz Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " stadt Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " vorwahl_telefon Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " telefon Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " vorwahl_fax Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " faxnr Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " mobilnr Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " firmenname Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " email Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " homepage_url Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " homepage_titel Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " firmen_beschreibung Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " firmenbeschreibung Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " banner Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " bild1 Like '%$query_elements[$i]%' OR";
$stichwort_suche .= " bild2 Like '%$query_elements[$i]%')";

}


Wenn ich nun nach tischler bielefeld mit einer UND Verknüpfung suchen möchte, erhalte ich auch andere Einträge aus anderen Städten. Was ist falsch an der Abfrage?

Wer kann mir bitte weiterhelfen???


Benj

 
TobiaZ
15-03-2007, 19:11 
 
1. ist das nicht gerade das, was man unter ein "Volltextsuche" in MySQL versteht.
2. Zeig uns bitte die Query und nicht diesen unschönen PHP-Code.

 
Benji
15-03-2007, 19:21 
 
Das ist meine Abfrage:

SELECT * FROM adressen WHERE status Like 'aktiviert' AND ($stichwort_suche) AND
($sql_stadt) AND ($sql_plz) AND ($sql_kfz_kennzeichen) ORDER BY kdnr DESC

 
TobiaZ
15-03-2007, 19:23 
 
Und da fragst du allen ernstes noch, was daran falsch ist?

was haben die variablen ($stichwort_suche, ...) da drin zu suchen???

 
Benji
15-03-2007, 19:29 
 
Da bei der Suche mehrere Suchbegriffe eingegeben wurden, setzt sich die Suche aus mehreren Abfragen zusammen.

Deshalb wurde die Variable $stichwort_suche verwendet. Ganz einfach.

 
TobiaZ
15-03-2007, 19:31 
 
Ist das jetzt die Query, die du an die DB sendest oder nicht?

Wenn nein, warum postest du sie hier
und
wenn ja, warum sind da variablen namen drin und keine bedingungen?

 
Benji
15-03-2007, 19:37 
 
Weil die Bedingungen weiter oben stehen. Im ersten Post kannst du nochmal nachlesen. Dort wird die WHERE Bedingung zusammengesetzt.

 
aimbot
15-03-2007, 19:47 
 
Original geschrieben von Benji
Weil die Bedingungen weiter oben stehen. Im ersten Post kannst du nochmal nachlesen. Dort wird die WHERE Bedingung zusammengesetzt.

poste einfach die query, die an die db gesendet wird. ich glaube nicht dass hier jemand zeit noch lust hat, sie selbst aus deinem code zusammenzufrickeln.

 
TobiaZ
15-03-2007, 19:50 
 
Original geschrieben von Benji
Weil die Bedingungen weiter oben stehen. Im ersten Post kannst du nochmal nachlesen. Dort wird die WHERE Bedingung zusammengesetzt. Und etwas weiter darunter kannst du nochmal nachlesen, dass ich um die query gebeten hatte, anstatt des genannten php-codes.Deine datenbank muss sich den code doch auch nicht zusammensuchen, warum müssen wir? :goth:

 
Benji
15-03-2007, 20:04 
 
Sorry, hier die Abfrage:


// Query entfernt


Ich hoffe, ihr könnt mir weiterhelfen. Danke!
noch so ein Post, dann darfst du pausieren :teach:
Du bist lange genug hier, um zu wissen, dass man den Code bricht!

edited by asp2php.

 
TobiaZ
15-03-2007, 20:24 
 
Ich hoffe du findest bald die ENTER-Taste! :teach:

:rolleyes: :goth:

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:22 Uhr.