php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.03.2007, 19:55  
Neuer Benutzer
 
Registriert seit: 05.03.2005
Beiträge: 29
DarkThunder
Standard MySQL Volltextsuche mit PHP

Hi, ich habe schon viel davon gehört und wollte es mal selber ausprobieren. Da man mir bei anderen foren nicht helfen konnte, wende ich mich mal an euch. Ich habe meiner Ansicht nach alles richtig gemacht, um eine Volltextsuche zu realisieren. Wenn ich das Script ausführe (mysql_error), bekomme ich jedoch immer den Fehler:

"Can't find FULLTEXT index matching the column list"

Ich habe jedoch den entsprechenden Spalten die Volltext-Eigenschaft gegeben:

ALTER TABLE `philipstests2` ADD FULLTEXT (
`autor` ,
`titel` ,
`inhalt`
);

Das Script sieht folgendermaßen aus:

PHP-Code:
$suche mysql_query("SELECT * FROM philipstests2 WHERE MATCH (titel,inhalt) AGAINST ('$suchbegriff')");
echo 
"
<table>
<tr>
<td>Autor</td>
<td>Titel</td>
<td>Inhalt</td>
</tr>"
;
while(
$row mysql_fetch_object($suche))
{
echo 
"<tr><td>";
echo 
$row->titel;
echo 
"</td><td>";
echo 
$row->autor;
echo 
"</td><td>";
echo 
$row->inhalt;
echo 
"</td></tr>";
}
echo 
"
</table>"
;

Hab MySQL 4.1.22 und PHP 4.4.1.
DarkThunder ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.03.2007, 20:29  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

1. Das Script das du gepostet hast, hat kein mysql_error
2. Siehe -> http://forum.de.selfhtml.org/archiv/2002/7/t17765/
3. Versuch mal bei MATCH nur eine Spalte hinein zu schreiben und sag was passiert
__________________
Wie man Fragen richtig stellt
dsmcg ist offline   Mit Zitat antworten
Alt 20.03.2007, 20:58  
Neuer Benutzer
 
Registriert seit: 05.03.2005
Beiträge: 29
DarkThunder
Standard

Hm...ich hab grad beim Suchen auch was gefunden und bisschen weiter probiert.
Also mit nur einem Wert in der Klammer also z.B. autor klappt es, wenn ich "autor" als einzelnen Index habe. Wenn ich alle 3 in einem Index zusammenfasse klappts irgendwie nie. Vielleicht sollte ich also OR einfügen, und damit prüfen, ob der String in den anderen Spalten auch vorkommt. Dann geb ich halt jeder Spalte einen einzelnen Index, mal ausprobieren...
Aber eigentlich müsste das doch einfacher gehen
Ich will halt überprüfen ob der String aus dem Suchformular in einer der 3 Spalten vorkommt, und alle Ergebnisse auflisten, egal in welcher Spalte der String vorgekommen ist.

Edit: Aber so klappts nicht^^

PHP-Code:
$suche mysql_query("SELECT * FROM philipstests2 WHERE MATCH (autor) AGAINST ('$suchbegriff' WITH QUERY EXPANSION) AND WHERE MATCH (titel) AGAINST ('$suchbegriff' WITH QUERY EXPANSION) AND WHERE MATCH (inhalt) AGAINST ('$suchbegriff' WITH QUERY EXPANSION)"); 
DarkThunder ist offline   Mit Zitat antworten
Alt 21.03.2007, 18:13  
Neuer Benutzer
 
Registriert seit: 05.03.2005
Beiträge: 29
DarkThunder
Standard

Soo...mit einem Index über alle 3 Spalten und alle 3 spalten in der abfrage, also in einer Klammer, klappt, da kann ich alle drei spalten durchsuchen, und ich bekomme immer ein Ergebnis.
ABER: Ich bekomme nur EIN ergebnis, auch wenn mehrere zeilen das wort test enthalten z.B.
Wie kann ich alle Ergebnisse anzeigen lassen?
DarkThunder ist offline   Mit Zitat antworten
Alt 21.03.2007, 18:31  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Code:
SELECT MATCH (..) AGAINST (..) AS relevance, * FROM philipstest2
liefert dir die Relevanz für die spezielle MATCH AGAINST Abfrage auf jede Zeile. Dadurch sollte eigentlich alles ersichtlich sein. Die Bedingungen müssen natürlich passen, WHERE .. AND WHERE ist natürlich kompletter Quark.
Zergling-new ist offline   Mit Zitat antworten
Alt 21.03.2007, 19:08  
Neuer Benutzer
 
Registriert seit: 05.03.2005
Beiträge: 29
DarkThunder
Standard

Code:
$suche = mysql_query("SELECT * FROM philipstests2 WHERE MATCH (autor,titel,inhalt) AGAINST ('$suchbegriff' WITH QUERY EXPANSION)");
Hab das jetzt so und es klappt
DarkThunder ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] MySQL - ERROR 1044 bei erstellen einer Datenbank _youngenterpriser_ Datenbanken 2 05.02.2008 17:56
Mysql Server Einstellunen Optimieren pchero Datenbanken 3 01.05.2007 19:50
MySQL Abfrage von Ver. 5 für Ver 3. des MySQL Servers FireFIghter Datenbanken 3 02.02.2007 17:18
Kein Zugriff über ODBC mit der IP-Adresse auf MySql DB Datenbanken 4 09.02.2006 11:04
[Erledigt] Mysql 4.1.x unter php 4.3.9 Datenbanken 3 15.11.2005 13:49
Wieso funktioniert mein MySQL nicht mehr ? Skazi Datenbanken 1 09.11.2005 14:49
Schnittstelle zwischen PHP und MySQL klappt net !!! Datenbanken 16 16.10.2005 14:24
[Erledigt] not allowed to connect to this MySQL server PHP Tipps 2005-2 2 23.09.2005 18:34
MySQL &amp;amp; PHP: Problem mit Password() Datenbanken 10 19.09.2005 11:00
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
MySQL 3.23.x Volltextsuche mit Boolean codix Datenbanken 0 29.07.2005 14:42
MYSQL läuft nur wenn /tmp auf 777 Datenbanken 5 06.07.2005 08:38
mysql root passwort vergessen Datenbanken 1 29.05.2005 11:33
Access denied for user: '@localhost' / SYSTEM@localhost Datenbanken 0 10.11.2004 20:35
[Erledigt] PHP5 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;a m p; MySQL Datenbanken 5 01.08.2004 05:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php volltextsuche script, mysql volltextsuche, script volltextsuche, http://www.php.de/datenbanken/43742-mysql-volltextsuche-mit-php.html, volltextsuche php script, php volltextsuche, php script volltextsuche, php mysql volltextsuche, volltextsuche php mysql, php volltextsuche mysql, volltextsuche script, volltextsuche mysql php script, can\'t find fulltext index matching the column list, php volltextsuche mysql script, volltextsuche script php, volltextsuche php-script, volltextsuche php, mysql volltextsuche php, textsearch script php, php sql volltextsuche

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:02 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.