我有一个 MySQL 表,其中一个字段是“类别”,其值包括文章、研究、引述等。对于搜索表单,我有与这些类别相对应的复选框供用户选择,如果不是全部,则从中搜索。
现在,以下代码片段可用于不加区别地搜索整个表格(即,从具有“类别”的行,包括文章、研究、引述等。但是,我将如何更改以下内容,以便如果一个人只选择“文章” ,"查询将只返回具有相应值的字段 "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)");
我尝试在上面添加 WHERE category = '$category'
($category 在这种情况下将是“文章”),但它没有用。
顺便说一句:我知道 mysql/mysqli 和安全用户输入问题。
最佳答案
我发现了问题。以下作品:
$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'");
关于php - 如何使用仅返回具有特定字段值的行的 MATCH AGAINST 方法搜索 MySQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11961826/