我有一个sql查询返回了很多结果,我想生成一个html表来显示它们。问题是我不想在一个页面上全部显示它们,我想一次抓取10个并翻阅结果页面。
我想为每个查询返回100个结果,但我无法弄清楚如何在下一个查询中获取THE NEXT 100。
答案 0 :(得分:1)
您可以在底部定义限制。对于第一页:
LIMIT 0,100
第二页
LIMIT 100,100
等等。
当您在页面上放置“下一步”链接时,请创建一个$ _GET参数,表示start = 100。然后,使用该start参数作为limit中的第一个值,并向其中添加100以获取第二个值。
所以,最后它看起来像:
if(empty($_GET['start']))
{
$start = 0;
}
else
{
$start = $_GET['start'];
}
$SQL = "SELECT * FROM TABLE WHERE 1=1 LIMIT ".$start.",100;";
query($sql);
$link = "<a href=\"?start=".$start+100."\">Next</a>";
如果您想进一步扩展,可以添加num参数。这将允许用户控制他们看到的记录数量。所以:
if(empty($_GET['start']))
{
$start = 0;
}
else
{
$start = $_GET['start'];
}
if(empty($_GET['num']))
{
$start = 100;
}
else
{
$start = $_GET['num'];
}
$SQL = "SELECT * FROM TABLE WHERE 1=1 LIMIT ".$start.",".$num.";";
query($sql);
$link = "<a href=\"?start=".$start+100."&num=".$num."\">Next</a>";
当然,您需要对所有这些数字进行整理/验证。
答案 1 :(得分:1)
-- return the first 100 rows
SELECT * FROM table LIMIT 0, 100
-- return the next 100 rows
SELECT * FROM table LIMIT 100, 100
-- and the next
SELECT * FROM table LIMIT 200, 100
您需要做的是将一个变量传递给您的脚本,该变量将为每个页面创建正确的SQL LIMIT语句。
答案 2 :(得分:0)
您需要使用LIMIT sql语句。使用像SELECT * FROM table LIMIT $ var,100这样的查询,然后将url作为/page.ext?page=2。在php中使用get(即$ _GET ['page']),并将该数乘以100,得到$ var值。显然,你需要保证这一点。