1

我正在实现一个以分页格式显示数据的 php 页面。我的问题是这些数据是实时变化的,所以当用户请求下一页时,我提交最后一个 id 并执行查询,以便通过一个值实时变化的列从最后一个 id 顺序检索更多 10 行。例如我有 20 行:

Id 1    col_real_time 5
Id 2    col_real_time 3 
Id 3    col_real_time 11

ETC

我得到按col_real_time升序排序的数据,所以结果是

id 2, id 1, id 3

col_real_time现在,在用户发送下一页请求之前,实时 id 2 更改为29,用户现在发送下一个结果的请求,因为 id 2 现在是 29,所以他已经看到了。

我能怎么做?

现在实时 id 2 更改

4

2 回答 2

2

如果您只有几页,您可以:

  1. 将其保存到会话并对其进行分页,而不是返回到数据库服务器。

  2. 将其保存到 JSON 对象列表并使用 Jquery 读取并翻页。

  3. 将其保存到指示生成时间戳、user_id 和 session_id 的临时表中,并对其进行分页。

于 2012-09-21T23:53:24.633 回答
2

如果您不希望数据对用户显示更改,则基本上必须对数据进行快照。这不是您可以在 SQL 中非常有效地完成的事情,因此我建议将整个结果集下载到可以跨页面持久保存的 PHP 会话变量中。这样,您就可以按需获取行。有 Javascript 小部件可以有效地做同样的事情,但会将整个结果集发送到客户端,如果您有大量数据,这是一个坏主意。

这不像纯 SQL 分页那样容易,因为当不再需要存储的 var 时,您必须负责清理它。否则,你会很快耗尽内存。

于 2012-09-21T23:44:38.677 回答