Hello. I am trying a fulltext search on my database but i’m having some issues with it. I am joining 2 tables and this is the query i’m using:
SELECT songs.song_id, songs.title
FROM songs, song_artist, artists
WHERE songs.song_id = song_artist.song_id
AND song_artist.artist_id = artists.artist_id
AND MATCH (artists.artist, songs.title, songs.lyrics) AGAINST (‘$search’)
describe for table1:
Field---------Type------------------Null------Key-----Default—Extra
song_id------int(10) unsigned--------NO------PRI------NULL-----auto_increment
title----------varchar(400)----------NO-------MUL-----NULL
lyrics---------text------------------NO-------MUL-----NULL
original_id----int(10) unsigned-------YES---------------NULL
describt for table2
Field----------Type-------------------Null------Key-----Default–Extra
artist_id------int(10) unsigned---------NO-------PRI-----NULL-----auto_increment
artist---------varchar(200)------------NO-------MUL-----NULL
all fields i am using in the MATCH() clause are indexed as fulltext:
CREATE TABLE songs(
song_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (song_id),
title VARCHAR(400) NOT NULL,
lyrics TEXT NOT NULL,
FULLTEXT (title, lyrics),
original_id INT UNSIGNED);
CREATE TABLE artists(
artist_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (artist_id),
artist VARCHAR(200) NOT NULL,
FULLTEXT (artist));
CREATE TABLE song_artist(
song_id INT UNSIGNED NOT NULL,
INDEX (song_id),
artist_id INT UNSIGNED NOT NULL,
INDEX (artist_id));
Running that query from phpmyadmin it says “#1210 - Incorrect arguments to MATCH”. Apache says:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\music.php on line 44
Any ideas why the query is not working?
Thanks!