//conn to DB
echo $_POST['text'];
$filter = $_POST['text'];
$sql = "SELECT DISTINCT * FROM contents
WHERE
MATCH(content,title) AGAINST ('$filter')
";
$mksql=mysql_query($sql);
while($row = mysql_fetch_assoc($mksql)) {
echo $row['title']."<br />";
}
我使用上面的代码将POST请求发送到另一个页面。 它回应了我在输入字段中写的内容,但它没有输出任何结果。 当我在phpmyadmin中运行查询并输出1个结果时。 问题出在哪里?
答案 0 :(得分:0)
试试这个:
$sql = "SELECT DISTINCT * FROM contents
WHERE MATCH(content,title) AGAINST ('$filter' IN BOOLEAN MODE ) ";
在查询任何全文搜索之前,您必须创建mysql全文索引。
在phpmyadmin中执行此查询。
ALTER TABLE contents ADD FULLTEXT(content, title);
答案 1 :(得分:0)
可能是帖子数据中存在与全文搜索不匹配的问题。您可以对用于查询的发布数据使用 mysql_escape_string(), htmlspecialchars()函数。这些函数将有助于避免使用html标签,引号等。您可以打印生成的SQL并在phpmyadmin中运行该查询。当然,为您正在搜索的字段创建mysql全文索引。