PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suchfunktion


thorben
17.12.2005, 12:20:20
Mahlzeit!

Mein Ziel ist es eine einfache Suchfunktion zu erstellen.

Ein HTML-Formular wird an die Ausgabe gesendet, die Ausgabe sieht so aus:


include("blabla");

$sql = "SELECT * FROM artikel WHERE text like $suche";
$result = mysql_query($sql) or die(mysql_error()); ;
while($zeile = mysql_fetch_array($result)) {
...
}


Als Ausgabe erhalte ich:
Unknown column 'Dokument' in 'where clause'

Das einzige was ich hierbei weiß, dass ich keinen Schimmer habe, was das bedeutet.

Bitte um Hilfestellung. Danke.
Gruß thorben

feuervogel
17.12.2005, 12:30:55
es gehören ' um $suche, da sonst zeichenketten die nicht von anführungszeichen umgeben sind als mysql-schlüsselworte oder spaltennamen aufgefasst werden.

thorben
17.12.2005, 12:54:00
Ok, das habe ich jetzt hinbekommen:

$sql = "SELECT * FROM artikel WHERE MATCH text AGAINST ('$suche')";

Mittlerweile habe ich diesen Artikel (http://www.php-faq.de/q/q-mysql-volltextsuche.html) gelesen, und meine Tabelle mit einem Index belegt. Was kann man dabei falsch machen oder nicht machen?

Leider werden jetzt nicht alle Wörter ausgegeben, obwohl diese in text enthalten sind. Was kann man besser machen, bzw. richtiger machen?

Ach ja, wenn ein Suchbegriff nicht gefunden wurde, wird nichts ausgegeben - welche Lösung gibt es da?

Danke & Gruß thorben

vt1816
17.12.2005, 13:34:42
...
Was kann man dabei falsch machen oder nicht machen?
...Wie hast Du es denn gemacht, dass Du der Meinung bist, es ist falsch oder hast es nicht gemacht?

...
Ach ja, wenn ein Suchbegriff nicht gefunden wurde, wird nichts ausgegeben - welche Lösung gibt es da?

Danke & Gruß thorbenDas musst Du selber abfangen. Denn was erwartest Du da?

xabbuh
17.12.2005, 21:54:16
Leider werden jetzt nicht alle Wörter ausgegeben, obwohl diese in text enthalten sind. Was kann man besser machen, bzw. richtiger machen?
Bei einem FULLTEXT-Index entscheidet MySQL selbst, welche Worte in den Index aufgenommen werden und welche nicht. Worte, die besonders häufig vorkommen, werden beispielsweise nicht indiziert, da über diese Worte keine besonders effektive Suche erreicht würde. Außerdem hängt es auch davon, auf welchen Wert der Option ft_min_word_len (Standardwert: 3) gesetzt ist.

thorben
18.12.2005, 09:50:53
Guten Morgen,

Außerdem hängt es auch davon, auf welchen Wert der Option ft_min_word_len (Standardwert: 3) gesetzt ist.

Ja, das habe ich mittlerweile auch schon gelesen, wollte die Datei auch schon ändern, hab sie aber nicht gefunden und dachte mir dann: Wer sucht schon ein Wort unter 3 Buchstaben?!?!?

Um die Ausgabe von nicht gefundenen Suchwörtern kümmere ich mich heute.
Danke für Eure Antworten. thorben.