【问题标题】:Show parts of the result of an SQL statement using PHP使用 PHP 显示 SQL 语句的部分结果
【发布时间】:2010-05-22 07:13:39
【问题描述】:

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

我已经设法拥有正确的 SELECT 语句,但我无法使用“更多”按钮以 5 比 5 显示结果。

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

【问题讨论】:

    标签: sql select php mysql


    【解决方案1】:

    因此无法设置限制并再次调用查询。

    是的,如果您使用相同的种子。

    例如

    SELECT column FROM table WHERE condition ORDER BY RANDOM(seed) LIMIT start, num
    

    您在 PHP 中生成一次种子,并在下一次调用中重复使用它(使用 GET 传递它或将其保存到会话变量中)

    【讨论】:

    • 这实际上是一个比我更好的主意。非常好!
    【解决方案2】:

    最简单的方法是使用会话:

    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 查询来获取行。

    希望对您有所帮助。

    干杯,
    费边

    【讨论】:

      【解决方案3】:

      您实际上可以在查询中加载所有数据并将它们存储在某处,例如 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.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-17
        • 2015-07-04
        相关资源
        最近更新 更多