我正在创建一个网站,其中包含页面下方列出的文章(包含其内容)。想想博客风格。但是,我认为在一个页面上完整显示50篇文章会有点荒谬,所以我想知道将页面自动分成页面的最佳方法是什么。
我正在使用PHP和MySQL从数据库中获取文章。
答案 0 :(得分:2)
一些可以混合并与其他东西匹配的建议。
只是一些想法。从来没有一种“最佳”的方式来做任何事情,只是在上下文中更有意义的方式。
答案 1 :(得分:1)
计算当前类别中的文章数量 p>
除以每页的总金额以获得总页数。
从mysql中选择每页数量的文章,其中id>(pagenum *每页金额)
创建导航链接。
示例查询:
$sql = "SELECT * FROM articles ORDER BY date ASC LIMIT 0, 20"; // This will return the first 20
$sql = "SELECT * FROM articles ORDER BY date ASC LIMIT 40, 20"; // This will return 40-60
注意:这称为未来参考/搜索的分页。有很多很好的例子,还有一些框架可以帮你解决这个问题。
答案 2 :(得分:1)
我没有专门使用PHP,但执行此类操作的一般策略是根据每页所需的项目数以及应跳过的项数来设计查询以动态限制。换句话说,您的SQL遵循以下内容:
$stmt = $mysqli->prepare("SELECT id, title, createdDate FROM tArticles ORDER BY createdDate desc LIMIT :skip, :itemsPerPage");
如果您按页码跟踪此数据,则您的:skip bind参数将通过获取当前页码(从0开始)并乘以每页的项目数得出。
你应该看看the answer for this question,以避免在绑定之前需要将变量转换为整数的潜在常见缺陷。
答案 3 :(得分:1)
我记得有一次我看了Blogger如何做到这一点,而且非常有趣
这是这样的:
post-timestamp
(应该是最新的帖子)display-per-page
(类似于10-20)post-timestamp
开始搜索您的数据库
将搜索范围限制为display-per-page
post-timestamp
提供“下一个”链接以及display-per-page