使用PHP显示SQL语句结果的一部分

时间:2010-05-22 07:13:40

标签: sql select php mysql

我有一个SQL查询,它返回一组数据(大约40-50个元组)。 我想使用PHP在HTML页面上一次显示5个结果。

我已经设法使用正确的SELECT语句,但是我在使用“更多”按钮显示结果5到5时遇到了问题。

你能帮帮忙吗? 请注意,每次调用查询时,数据都是随机的,因此无法设置限制并再次调用查询。我必须找到将结果存储在某处的方法,然后将其显示为5乘5。

3 个答案:

答案 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.