Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用只返回具有特定字段值的行的MATCH-country方法搜索MySQL数据库?_Php_Mysql_Search_Match - Fatal编程技术网

Php 如何使用只返回具有特定字段值的行的MATCH-country方法搜索MySQL数据库?

Php 如何使用只返回具有特定字段值的行的MATCH-country方法搜索MySQL数据库?,php,mysql,search,match,Php,Mysql,Search,Match,我有一个MySQL表,其中一个字段是“category”,其值包括文章、研究、引用等。对于搜索表单,我有与这些类别对应的复选框,供用户选择要搜索的类别(如果不是全部) 现在,下面的代码片段可以不加区别地搜索整个表(即,从带有“category”的行中搜索,包括文章、研究、引用等。但是,我如何更改以下内容,以便如果一个人只选择“articles”,则查询将只返回具有“category”字段的行有相应的值吗 $category = $_GET["category"]; $query = "User-

我有一个MySQL表,其中一个字段是“category”,其值包括文章、研究、引用等。对于搜索表单,我有与这些类别对应的复选框,供用户选择要搜索的类别(如果不是全部)

现在,下面的代码片段可以不加区别地搜索整个表(即,从带有“category”的行中搜索,包括文章、研究、引用等。但是,我如何更改以下内容,以便如果一个人只选择“articles”,则查询将只返回具有“category”字段的行有相应的值吗

$category = $_GET["category"];
$query = "User-submitted query";
$search = mysql_query("SELECT title,body,
MATCH(title, body) 
AGAINST('$query' IN BOOLEAN MODE)
AS score FROM resources
WHERE MATCH(title, body) AGAINST ('$query' IN BOOLEAN MODE)");
我尝试在上面的
中添加category='$category'
($category在本例中是“Articles”),但没有成功


顺便说一句:我知道mysql/mysqli和安全用户输入问题。

您会反对使用子查询吗

SELECT title,body
FROM(

SELECT title,body,category
MATCH(title, body) 
AGAINST('$query' IN BOOLEAN MODE)
AS score FROM resources
WHERE MATCH(title, body) AGAINST ('$query' IN BOOLEAN MODE)

) x 
WHERE category = '$category'

我解决了这个问题。以下方法有效:

$category = $_GET["category"];
$query = "User-submitted query";
$search = mysql_query("SELECT title,body,
MATCH(title, body) 
AGAINST('$query' IN BOOLEAN MODE)
AS score FROM resources
WHERE MATCH(title, body) AGAINST ('$query' IN BOOLEAN MODE)
AND category = '$category'");