【发布时间】:2013-03-12 11:09:45
【问题描述】:
我有一个查询,目前看起来像这样:
$queryMovies = "SELECT
m.movieID,
n.title,
m.directorID, d.directorFirstName, d.directorLastName,
m.runTime,
m.yearReleased,
m.synopsis,
m.formatID, f.format,
FROM movies m
LEFT JOIN directors d ON d.directorID = m.directorID
LEFT JOIN format f ON f.formatID = m.formatID
ORDER BY title";
结果被发送回 jQuery $.ajax 调用,如下所示:
$arr = array();
while($row = mysqli_fetch_array($resultMovies, MYSQLI_ASSOC)) {
$arr[] = $row;
}
header('Content-Type: application/json');
echo json_encode($arr);
$.ajax 调用的成功函数处理数据如下:
...
'<div class="synopsisCell">' +
'Synopsis<br />' +
'<label class="lblSynopsis">' + element['synopsis'] + '</label>' +
'</div>' +
'<div class="formatCell">' +
'<label class="lblFormat">' + element['format'] + '</label>' +
'</div>' +
'<div class="yearCell">' +
'<label class="lblYear">' + element['yearReleased'] + '</label>' +
'</div>' +
...
(如您所见,这是完整输出的不完整 sn-p)
我需要将分页添加到要放入数据的表中,但我不确定处理此问题的最佳方法。 (我以前从未使用过分页编程)
我开始添加一个单独的查询,它只获取记录数(以确定将有多少页),然后我意识到我仍然需要为分页的开始和记录数等做一个 LIMIT 子句等。
此时我想知道两件事:
A) 我能否以某种方式将记录数添加到现有的查询/返回代码中,然后我可以在 jQuery 端使用它来构建分页导航(页码和下一页/上一页/第一页/最后一页链接)。
或:
B) 我是否可以通过从 JSON 对象中获取记录数并仅显示要在表中显示的结果集(例如,哪组 20 条记录)来完全在 JS 端处理分页?
另外,当用户点击分页导航链接时,我是否每次都必须重新运行查询,或者是否有某种方法可以在 JS 中“存储”该信息以避免过多的服务器/数据库查询?
我不是在寻找特定的编码,只是也许一些伪代码可以让我朝着正确的方向开始。
感谢大家的帮助。
【问题讨论】:
标签: php mysql jquery-pagination