login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Can't find FULLTEXT (Opgelost)

Offline ikki007 - 05/01/2008 16:27
Avatar van ikki007Gouden medailleGouden medaille

PHP ver gevorderde
Ik gebruik dit script: http://www.site...mp;id=1059

Maar zodra ik een woord van meer dan 3 tekens invul krijg ik:

Can't find FULLTEXT index matching the column list.

Ik doe het als volgt:

$results = searchDatabase($keywords,array('titel','beschrijving', 'keywords'),'scripts');

8 antwoorden

Gesponsorde links
Offline Wim - 05/01/2008 16:33 (laatste wijziging 05/01/2008 16:35)
Avatar van Wim Crew algemeen kan je een iets groter fragment geven? Mss je database structuur?
Offline ikki007 - 05/01/2008 20:39
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Sorry dat ik dit niet direct heb gedaan.
De structuur is niet super netjes, maar zo heb ik hem aangeleverd gekregen ;)

  1. CREATE TABLE `scripts` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `titel` varchar(255) NOT NULL DEFAULT '',
  4. `prijs` varchar(255) NOT NULL DEFAULT '',
  5. `avatar` varchar(255) NOT NULL DEFAULT '',
  6. `preview` varchar(255) NOT NULL DEFAULT '',
  7. `preview2` varchar(255) NOT NULL DEFAULT '',
  8. `pid` varchar(255) NOT NULL DEFAULT '',
  9. `beschrijving` text,
  10. `keywords` varchar(255) NOT NULL DEFAULT '',
  11. PRIMARY KEY (`id`)
  12. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
Offline Wim - 05/01/2008 20:55
Avatar van Wim Crew algemeen fout zit in de query op lijn 19 denk ik: (bij die implode)

mysql_query("SELECT id FROM ".$table." WHERE ".implode(" LIKE '%".$keywords."%' OR ",$fields)." LIKE '%".$keywords."%' ".$where) or die(mysql_error());
Offline ikki007 - 05/01/2008 20:56 (laatste wijziging 05/01/2008 21:05)
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Heb je misschien enig idee wat het precies zou kunnen zijn.
Dit gaat namelijk mijn php-skillz net te boven  

EDIT: Misschien heeft iemand een andere idee hoe ik makkelijk door velden kan zoeken in de database?
Offline Wim - 05/01/2008 21:12
Avatar van Wim Crew algemeen
  1. SELECT * FROM TABLE WHERE COLUMN LIKE '%$string%' OR COLUMN LIKE '%string%' OR COLUMN LIKE '%string%'
Offline Ibrahim - 06/01/2008 13:15
Avatar van Ibrahim PHP expert je kunt het beste je query echoeën als hij niet werkt, zo kun je kijken of de syntax wel goed is 
Offline Flex1986 - 06/01/2008 13:23 (laatste wijziging 06/01/2008 13:36)
Avatar van Flex1986 Gouden medaille

Senior Member
De kolommen die je doorzoekt die moet wel fulltext geindexeerd worden. Dit kan je instellen in phpmyadmin.

Zolang je dat niet doet zal je bij meer als 3 letters altijd die foutmelding terug krijgen.

'titel','beschrijving', 'keywords' deze kolommen moeten dus fulltext doorzoekbaar zijn.

Edit: Persoonlijk vindt ik die functie bijzonder nutteloos want het enigste wat je terug krijgt zijn de id's in een array. Voor al die id's moet je weer een query uitvoeren om de gegevens optehalen beetje overdreven lijkt mij want die kan allemaal in 1 query!

Edit 2:

  1. SELECT *, MATCH (titel,beschrijving,keywords) AGAINST ('*".$_POST['zoek_textfield']."*' IN BOOLEAN MODE) AS score FROM scripts WHERE MATCH (titel,beschrijving,keywords) AGAINST ('*".$_POST['zoek_textfield']."*' IN BOOLEAN MODE) ORDER BY score DESC


Deze query zou als het goed is moet werken en geeft alles in 1 keer terug. Gesorteerd op score. En de score wordt bepaald hoe vaak en hoe relevant het zoekwoord voorkomt in die rij!
Offline ikki007 - 06/01/2008 14:32 (laatste wijziging 06/01/2008 14:39)
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Het werkt, danku  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.171s