以下代码效果很好,但我找不到限制结果数量的方法。有什么想法吗?
$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原样)。 2-它在爆炸$ q后搜索每个关键字作为一个数组(这是" foreach"的部分)。 之后,代码循环使用"而#34;查找与搜索请求匹配的所有结果。
答案 0 :(得分:2)
完成查询后使用LIMIT。
另外,如果您希望按表中的某些字段对结果进行排序,您也可以说“ORDER BY fieldname ASC | DESC”
如下:
$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%'";
}
$query .= " LIMIT 10"; //<<<<<<<<<<<<<<<
$result = $mysqli->query($query);
while( $row = $result->fetch_assoc())
{
if ($row != 0) {
$title = $row['title'];
}
答案 1 :(得分:0)
使用LIMIT。
SELECT * FROM table WHERE para LIKE '%$q%' LIMIT 2
答案 2 :(得分:0)
您可以限制MySQL查询中的结果数量,如下所示:
$query = "SELECT * FROM table WHERE para LIKE '%$q%' LIMIT 5";
这将限制为5个结果。如果您想要10,请将其更改为10