关于手写分页应该往MySQL存什么,我们需要考虑以下几个方面:
1.每页显示多少条数据
CREATE TABLE articles (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
SELECT * FROM articles LIMIT 0,10;
其中LIMIT 0,10表示查询结果从第0条开始,显示10条数据。
2.当前页数
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$perPage = 10;
$start = ($page >1) ? ($page * $perPage) - $perPage : 0;
$results = $db->query("SELECT * FROM articles LIMIT {$start},{$perPage}");
$total = $db->query("SELECT FOUND_ROWS() as total")->fetch()['total'];
$pages = ceil($total/$perPage);
其中,使用了MySQL的FOUND_ROWS()
函数,可以获取未使用LIMIT限制时的总记录数。
3.总页数
$total = $db->query("SELECT COUNT(id) as total FROM articles")->fetch()['total'];
$pages = ceil($total/$perPage);
这里使用了MySQL的COUNT()
函数,可以获取指定列的行数。
总的来说,我们需要存储每条数据的ID、标题、内容、创建时间等信息,这样才能在显示分页时获取需要的数据并计算总页数。