如何在使用 foreach 和 while 循环时限制搜索结果
How to limit search results while using foreach and while loops
以下代码运行良好,但我找不到限制结果数量的方法。有什么想法吗?
$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中存放的是搜索关键词,然后代码将其展开,分2步搜索关键词:
1- 作为一个句子使用 ($q as it is)。
2- 它在展开 $q 后搜索每个关键字作为数组(这里是 "foreach" 所做的部分)。
之后,代码循环使用 "while" 来查找与搜索请求匹配的所有结果。
使用 LIMIT。
SELECT * FROM table WHERE para LIKE '%$q%' LIMIT 2
您可以限制 MySQL 查询中的结果数量,如下所示:
$query = "SELECT * FROM table WHERE para LIKE '%$q%' LIMIT 5";
这会将其限制为 5 个结果。想要10就改成10
完成查询后使用 LIMIT。
此外,如果您希望结果按 table 中的某些字段排序,您还可以说“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'];
}
以下代码运行良好,但我找不到限制结果数量的方法。有什么想法吗?
$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中存放的是搜索关键词,然后代码将其展开,分2步搜索关键词: 1- 作为一个句子使用 ($q as it is)。 2- 它在展开 $q 后搜索每个关键字作为数组(这里是 "foreach" 所做的部分)。 之后,代码循环使用 "while" 来查找与搜索请求匹配的所有结果。
使用 LIMIT。
SELECT * FROM table WHERE para LIKE '%$q%' LIMIT 2
您可以限制 MySQL 查询中的结果数量,如下所示:
$query = "SELECT * FROM table WHERE para LIKE '%$q%' LIMIT 5";
这会将其限制为 5 个结果。想要10就改成10
完成查询后使用 LIMIT。
此外,如果您希望结果按 table 中的某些字段排序,您还可以说“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'];
}