我有一个查询,目前看起来像这样:
$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>' +
...
(如您所见,这是完整输出的不完整片段)
我需要将分页添加到要放入数据的表中,但我不确定处理此问题的最佳方法。(我以前从未使用过分页编程)
我开始添加一个单独的查询,它只获取记录数(以确定将有多少页),然后我意识到我仍然需要使用分页的开始和记录数等执行一个 LIMIT 子句,等等。
在这一点上,我想知道两件事:
A)我能否以某种方式将记录数添加到现有的查询/返回代码中,然后我可以在 jQuery 端使用它来构建分页导航(页码和下一页/上一页/第一页/最后一页链接)。
或者:
B)我是否可以通过从 JSON 对象以某种方式获取记录数并仅显示要在表中显示的结果集(例如,哪组 20 条记录)来完全在 JS 端处理分页?
此外,当用户单击分页导航链接时,我是否每次都必须重新运行查询,或者是否有某种方法可以在 JS 中“存储”该信息以避免过多的服务器/数据库查询?
我不是在寻找特定的编码,只是可能一些伪代码让我朝着正确的方向开始。
感谢任何人的帮助。