Как сузить результаты полнотекстового поиска MySQL? - PullRequest
1 голос
/ 10 сентября 2011

У меня есть полнотекстовая поисковая система MySQL, и я хочу позволить пользователю фильтровать результаты, добавляя диапазон лет для результатов.У меня есть столбец с именем year, который имеет годы в период с 1999 по 2011 год. Как мне изменить мой mysql_query, чтобы отразить это?Переменная $fyear - это год, с которого пользователь хотел начать (нижний предел), а $tyear - год, который должен заканчиваться (верхний предел).

<?php
mysql_connect("localhost", "root", "root");
mysql_select_db("database");

$var = @$_GET['q'];
$fyear = @$_GET['from_year'];
$tyear = @$_GET['to_year'];

if (isset($var)) {
$sql = mysql_query("SELECT *, MATCH(subj_name, course_name) AGAINST ('$var') 
AS score from table1 WHERE MATCH (subj_name, course_name) AGAINST('$var') 
ORDER BY score desc");
}

ПРИМЕЧАНИЕ. Столбец year является целочисленным полем

Ответы [ 2 ]

1 голос
/ 10 сентября 2011

Посмотрите на оператора между .

$sql = mysql_query("SELECT *, MATCH(subj_name, course_name) AGAINST ('$var') AS 
score from table1 WHERE year BETWEEN '$fyear' AND '$tyear' MATCH (subj_name, course_name) AGAINST('$var') ORDER
BY score desc");
0 голосов
/ 10 сентября 2011

Я не знаком с полнотекстовым поиском, но не могли бы вы просто добавить условия к вашему запросу, как это?

$sql = mysql_query("SELECT *, MATCH(subj_name, course_name) AGAINST ('$var') AS 
score from table1 WHERE year BETWEEN $fyear AND $tyear AND MATCH (subj_name, course_name)   AGAINST('$var') ORDER BY score desc");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...