Ik heb in php een zoekmachine gemaakt met behulp van MySQL Full-text Search. Nu is het zo dat het wel werkt op de ene tabel en niet op de ander en ik begrijp niet waarom.
Hier de tabellen
Hier de queries die ik gebruik:
$query = "SELECT id, gebruikersid, datum, filmnaam, MATCH (`recensie`, `filmnaam`) AGAINST ('$zoekstring') AS score FROM filmrecensies WHERE MATCH (`recensie`, `filmnaam`) AGAINST ('$zoekstring')";
$query = "SELECT id, gebruikersid, datum, filmnieuwstitel, nieuws, MATCH (`nieuws`, `filmnieuwstitel`) AGAINST ('$zoekstring') AS score FROM filmnieuws WHERE MATCH (`nieuws`, `filmnieuwstitel`) AGAINST ('$zoekstring')";
Hier de tabellen
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| CREATE TABLE `filmrecensies` ( `id` int(11) NOT NULL auto_increment, `gebruikersid` varchar(11) NOT NULL default '', `datum` timestamp(14) NOT NULL, `filmnaam` varchar(255) NOT NULL default '', `recensie` text NOT NULL, `beoordelingauteur` int(2) NOT NULL default '0', `totalebeoordelinggebruikers` int(11) NOT NULL default '0', `aantalstemmengebruikers` int(11) NOT NULL default '0', `url` varchar(255) NOT NULL default '', PRIMARY KEY (`id`), KEY `gebruikersid` (`gebruikersid`), FULLTEXT KEY `filmnaam` (`filmnaam`,`recensie`), KEY `datum` (`datum`) ) TYPE=MyISAM AUTO_INCREMENT=7 ; CREATE TABLE `filmnieuws` ( `id` int(11) NOT NULL auto_increment, `gebruikersid` int(11) NOT NULL default '0', `datum` timestamp(14) NOT NULL, `filmnieuwstitel` varchar(255) NOT NULL default '', `nieuws` mediumtext NOT NULL, `bronnaam` varchar(255) NOT NULL default '', `bronurl` text NOT NULL, PRIMARY KEY (`id`), FULLTEXT KEY `filmnieuwstitel` (`filmnieuwstitel`,`nieuws`), KEY `gebruikersid` (`gebruikersid`), KEY `datum` (`datum`) ) TYPE=MyISAM AUTO_INCREMENT=5 ; |
Hier de queries die ik gebruik:
$query = "SELECT id, gebruikersid, datum, filmnaam, MATCH (`recensie`, `filmnaam`) AGAINST ('$zoekstring') AS score FROM filmrecensies WHERE MATCH (`recensie`, `filmnaam`) AGAINST ('$zoekstring')";
$query = "SELECT id, gebruikersid, datum, filmnieuwstitel, nieuws, MATCH (`nieuws`, `filmnieuwstitel`) AGAINST ('$zoekstring') AS score FROM filmnieuws WHERE MATCH (`nieuws`, `filmnieuwstitel`) AGAINST ('$zoekstring')";