CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
14.08.2007, 16:09:13
|
Anfänger
|
|
Registriert seit: Aug 2007
Beiträge: 10
|
|
Can't find FULLTEXT index matching the column list
Hallo zusammen!
Ich habe hier ein Problem mit der Volltextsuche, das ich nicht in den Griff bekomme.
Über 10 Input-Felder können Zutaten eingegeben werden, die dann mit den Zutaten von gespeicherten Rezepten abgeglichen werden.
Das funktioniert auch soweit, wenn ich die Boolsche-Volltextsuche verwende.
Allerdings möchte ich keine Boolsche-Volltextsuche verwenden, weil dabei nicht automatisch nach absteigender Relevanz sortiert wird. Sobald ich aber "IN BOOLEAN MODE" aus der Abfrage entferne, bekomme ich kein Suchergebnis mehr, sondern die Fehlermeldung: "Can't find FULLTEXT index matching the column list".
PHP-Code:
error_reporting(E_ALL); // alle Fehler anzeigen
@mysql_connect('localhost:8889', 'root', 'root') or die ("Keine Verbindung moeglich");
mysql_select_db("test") or die ("Die Datenbank existiert nicht");
$name = $_POST["name"];
$zutat1 = $_POST["zutat1"];
$zutat2 = $_POST["zutat2"];
$zutat3 = $_POST["zutat3"];
$zutat4 = $_POST["zutat4"];
$zutat5 = $_POST["zutat5"];
$zutat6 = $_POST["zutat6"];
$zutat7 = $_POST["zutat7"];
$zutat8 = $_POST["zutat8"];
$zutat9 = $_POST["zutat9"];
$zutat10 = $_POST["zutat10"];
$text = $_POST["text"];
$zeit = $_POST["zeit"];
$abfrage = "SELECT * FROM rezepte
WHERE MATCH (zutat1,zutat2,zutat3,zutat4,zutat5,zutat6,zutat7,zutat8,zutat9,zutat10)
AGAINST ('$zutat1*, $zutat2*, $zutat3*, $zutat4*, $zutat5*, $zutat6*, $zutat7*, $zutat8*, $zutat9*, $zutat10*')";
$resultat = mysql_query($abfrage) or die (mysql_error()); //Abfrage durchführen
echo "<font size=1><br />";
echo "<table border=none bgcolor=#d3d3d3>";
while ($row = mysql_fetch_array($resultat)) // Sämtliche Datensätze durchlaufen und ausgeben
{
extract ($row); // Mithilfe der Feldbezeichnungen auf Feldinhalte zugreifen und diese ausgeben
echo "<tr>
<td width=250 height=30><a href=#><b>$name</b></a></td>
<td width=100 height=30>$zutat1</td>
<td width=100 height=30>$zutat2</td>
<td width=100 height=30>$zutat3</td>
<td width=100 height=30>$zutat4</td>
<td width=100 height=30>$zutat5</td>
<td width=100 height=30>$zutat6</td>
<td width=100 height=30>$zutat7</td>
<td width=100 height=30>$zutat8</td>
<td width=100 height=30>$zutat9</td>
<td width=100 height=30>$zutat10</td>
<td width=250 height=30>$text</td>
<td width=50 height=30>$zeit</td>
</tr>";
}
echo "</table>";
echo "</font>";
Hab mal meine phpMyAdmin Konfiguration hochgeladen. Möglicherweise liegt der Fehler ja irgendwo in diesem FULLTEXT-Index. http://farm2.static.flickr.com/1231/...50d721.jpg?v=0
Vielen Dank schonmal!
|
14.08.2007, 16:32:25
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: Can't find FULLTEXT index matching the column list
vielleicht statt
'$zutat1*, $zutat2*, $zutat3*, $zutat4*, $zutat5*, $zutat6*, $zutat7*, $zutat8*, $zutat9*, $zutat10*'
so:
'$zutat1*', '$zutat2*', '$zutat3*', '$zutat4*', usw
und zudem: ich dachte immer bei mysql sei % die wildcard.
Geändert von feuervogel (14.08.2007 um 16:33:07 Uhr)
|
14.08.2007, 16:39:33
|
Anfänger
|
|
Registriert seit: Aug 2007
Beiträge: 10
|
|
AW: Can't find FULLTEXT index matching the column list
Bringt leider nichts.
Ich dachte auch, dass man "%" als wildcard benutzt. Es funktioniert aber in meinem Fall nur mit "*" (zumindestens im BOOLEAN MODE).
|
14.08.2007, 20:12:28
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Can't find FULLTEXT index matching the column list
Zitat:
Zitat von HerrMeier
Bringt leider nichts.
|
Jo, bei der Fehlermeldung:
Zitat:
Can't find FULLTEXT index matching the column list
|
bringen Deine Hinweise wirklich nix. Wie sieht das CREATE TABLE aus?
|
14.08.2007, 20:27:04
|
Anfänger
|
|
Registriert seit: Aug 2007
Beiträge: 10
|
|
AW: Can't find FULLTEXT index matching the column list
Zitat:
Zitat von meikel
Wie sieht das CREATE TABLE aus?
|
Ich habe die Tabelle in phpMyAdmin erstellt (siehe Screenshot: http://farm2.static.flickr.com/1231/...50d721.jpg?v=0).
Ich weiß leider nicht ob/wie man sich den Quelltext dann im Nachhinein anzeigen lassen kann.
|
14.08.2007, 21:46:29
|
|
Administrator
|
|
Registriert seit: Jul 2004
Beiträge: 3.707
|
|
AW: Can't find FULLTEXT index matching the column list
Zitat:
Zitat von HerrMeier
|
Wie soll/kann man Dir helfen, wenn der Screenshot schon wieder weg ist?
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert
Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!
Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
|
14.08.2007, 22:18:10
|
Anfänger
|
|
Registriert seit: Aug 2007
Beiträge: 10
|
|
AW: Can't find FULLTEXT index matching the column list
Zitat:
Zitat von vt1816
Wie soll/kann man Dir helfen, wenn der Screenshot schon wieder weg ist?
|
Da ist wohl irgendwas beim Link kopieren schief gelaufen. Hier ist er wieder: Tabelle
|
15.08.2007, 09:43:19
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Can't find FULLTEXT index matching the column list
So sieht ein mit PhpMyAdmin erstelltes CREATE TABLE aus (-> EXPORT):
Code:
--
-- Tabellenstruktur für Tabelle `phpbb_words`
--
CREATE TABLE `phpbb_words` (
`word_id` mediumint(8) unsigned NOT NULL auto_increment,
`word` varchar(255) NOT NULL default '',
`replacement` varchar(255) NOT NULL default '',
PRIMARY KEY (`word_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Kannste auch selber machen:
PHP-Code:
# Login und DB Select haste schon gemacht
$tabelle = 'tabelle'; $sql = sprintf("SHOW CREATE TABLE `%s` ", $tabelle); $res = mysql_query($sql) or die( mysql_error()); $row = mysql_fetch_assoc($res); echo '<pre>', $row['Create Table'], '</pre>';
|
15.08.2007, 11:01:19
|
Anfänger
|
|
Registriert seit: Aug 2007
Beiträge: 10
|
|
AW: Can't find FULLTEXT index matching the column list
Danke für den Tipp!
Also folgendermaßen sieht mein CREATE TABLE aus:
Code:
CREATE TABLE `rezepte` (
`ID` int(11) NOT NULL auto_increment,
`name` tinytext character set utf8 NOT NULL,
`zutat1` tinytext character set utf8 NOT NULL,
`zutat2` tinytext character set utf8 NOT NULL,
`zutat3` tinytext character set utf8 NOT NULL,
`zutat4` tinytext character set utf8 NOT NULL,
`zutat5` tinytext character set utf8 NOT NULL,
`zutat6` tinytext character set utf8 NOT NULL,
`zutat7` tinytext character set utf8 NOT NULL,
`zutat8` tinytext character set utf8 NOT NULL,
`zutat9` tinytext character set utf8 NOT NULL,
`zutat10` tinytext character set utf8 NOT NULL,
`text` text character set utf8 NOT NULL,
`zeit` smallint(11) unsigned NOT NULL,
PRIMARY KEY (`ID`),
FULLTEXT KEY `zutaten` (`name`,`zutat1`,`zutat2`,`zutat3`,`zutat4`,`zutat5`,`zutat6`,`zutat7`,`zutat8`,`zutat9`,`zutat10`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
Da ich gerade erst angefangen habe mit PHP und MySQL kann es auch sein, dass der Fehler nicht im Detail liegt, sondern irgendwas prinzipiell falsch ist. Allerdings funktioniert die Suche im Boolschen Modus.
Nochmals Danke für jede Hilfe!
|
15.08.2007, 23:52:27
|
Anfänger
|
|
Registriert seit: Aug 2007
Beiträge: 10
|
|
AW: Can't find FULLTEXT index matching the column list
Habe den Fehler endlich gefunden:
In meinem FULLTEXT-Index war ein Spaltenname ("name"), der nicht in der SELECT-WHERE- MATCH-AGAINST-Abfrage enthalten war.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:35:54 Uhr.
|