【发布时间】:2015-06-02 22:50:23
【问题描述】:
以下代码运行良好,但我找不到限制结果数量的方法。请问有什么想法吗?
$q = "some keywords for search"; // always escape
$keys = explode( " ",$q );
$query = "SELECT * FROM table WHERE para LIKE '%$q%' ";
foreach($keys as $k)
{
$query .= " OR para LIKE '%$k%'";
}
$result = $mysqli->query($query);
while( $row = $result->fetch_assoc())
{
if ($row != 0) {
$title = $row['title'];
}
}
感谢您的帮助。
注意:$q 保存搜索关键字,然后代码将其分解,搜索关键字分两步: 1- 使用 ($q as it is) 作为一个句子。 2-它在爆炸 $q 后将每个关键字作为数组搜索(这是“foreach”所做的部分)。 之后,代码使用“while”循环查找与搜索请求匹配的所有结果。
【问题讨论】:
-
$query .= " OR para LIKE '%$k%' LIMIT x_number";这就是它的去处,而不是第一部分。您还缺少一个右大括号。 -
我应该删除那个^
-
@Fred-ii- 是的,你是对的,当我此时使用“limit”时,代码运行良好,因为它在数据库中找到了关键字,但如果它没有找到任何关键字其中,我收到以下错误:致命错误:调用 fetch_assoc() 行中布尔值上的成员函数 fetch_assoc()
-
我更正了代码,非常感谢:)
-
是的,我看到了,很棒。不客气。
标签: php mysql mysqli foreach while-loop