最近学习Php,留言板、图片什么的页数太多,网上找了些资料,写了一个简单的分页。
代码加注释直接贴上吧:
$conn = new mysqli('localhost', 'user', 'password', ‘blog’);// user和password是自己数据库的账号和密码,这个不用解释了吧。。。
if (mysqli_connect_error()) // 如果连接失败,报错信息
{
$errno = mysqli_connect_errno();
$errmsg = mysqli_connect_error();
echo "Connect Failed with: ($errno) $errmsg<br />";
exit;
}
$conn->query('set names \'utf8\''); // 考虑到中文,还是用utf-8
$tmpquery =<<< TMP
select count(*) from comments; // 我的table名为comments,这里是得到留言的行数
TMP;
$result = $conn->query($tmpquery);
if ($result === false)
{
$errno = mysqli_connect_errno();
$errmsg = mysqli_connect_error();
echo "Connect Failed with: ($errno) $errmsg<br />";
exit;
}
$data = $result->fetch_array();
$rows = $data[0]; // 这里得到行数
$pagesize = 10; // 设置每页显示数量
//计算总页数
$pages = intval($rows/$pagesize);
if ($rows%$pagesize)
$pages++;
// 设置当前页该显示的页数
$curpage;
if (isset($_GET['curpage']))
$curpage = intval($_GET['curpage']);
else
$curpage = 1;
// 计算数据库里面的偏移量
$offset = $pagesize * ($curpage - 1);
// 获取当前页的留言
$curcomment =<<< TMP
select * from comments order by comment_id desc limit $offser, $pagesize;
TMP;
$result = $conn->query($curcomment);
if ($result === false)
{
$errno = mysqli_connect_errno();
$errmsg = mysqli_connect_error();
echo "Connect Failed with: ($errno) $errmsg<br />";
exit;
}
// 这里就处理显示自己的内容什么的
// 显示页数
for ($i=1; $i<$curpage; $i++) // 当前页之前的页数和连接
echo “<a href='billboard.php?curpage=”.$i."'>[".$i."]</a>";
echo "[".$i"]"; // 当前页不需要链接
for ($i=curpage+1; $i<=$pages; $i++) // 当前页之后的页数和连接
echo “<a href='billboard.php?curpage=”.$i."'>[".$i."]</a>";