从sql查询生成html报告

时间:2009-07-24 00:36:54

标签: sql

我有一个sql查询返回了很多结果,我想生成一个html表来显示它们。问题是我不想在一个页面上全部显示它们,我想一次抓取10个并翻阅结果页面。

我想为每个查询返回100个结果,但我无法弄清楚如何在下一个查询中获取THE NEXT 100。

3 个答案:

答案 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值。显然,你需要保证这一点。