我有一个SQL查询,它返回一组数据(大约40-50个元组)。 我想使用PHP在HTML页面上一次显示5个结果。
我已经设法使用正确的SELECT语句,但是我在使用“更多”按钮显示结果5到5时遇到了问题。
你能帮帮忙吗? 请注意,每次调用查询时,数据都是随机的,因此无法设置限制并再次调用查询。我必须找到将结果存储在某处的方法,然后将其显示为5乘5。答案 0 :(得分:3)
因此无法设置限制并再次调用查询。
是的,如果你使用相同的种子。
例如
SELECT column FROM table WHERE condition ORDER BY RANDOM(seed) LIMIT start, num
您在PHP中生成一次种子并将其重新用于下一次调用(将其传递给GET
或将其保存到会话变量中)
答案 1 :(得分:1)
最简单的方法是使用会话:
session_start()
[..] // Your query stuff..
$ids = array();
while(($row = mysql_fetch_assoc($result)) !== false)
{
$ids[] = $row['id'];
// probably output
}
$SESSION['ids'] = $ids;
我们的想法是按查询返回的顺序存储查询的ID。当用户点击“更多”时,您只需从会话中的数组中获取接下来的5个ID,并构建SQL-Query以获取行。
希望有所帮助。
干杯,
费边
答案 2 :(得分:1)
您实际上可以在查询中加载所有数据,并将它们存储在DIVs
中的示例中,对于第一个div,您显示5行,对于包含5行的其余div,您可以隐藏它们最初在点击更多链接时再次显示它们。事实上,你可以从 this script 中获得一个想法,也是出于同样的目的。
<div id="div_1">
5 rows here, this is shown by default
</div>
<div id="div_2">
5 rows here, this is hidden initially
</div>
<div id="div_3">
5 rows here, this is hidden initially
</div>
and so on.