这篇博客承接上一篇:php连接mysql实例之新用户注册实现
功能:用户注册后,我们想在后台以列表的形式显示已注册用户信息。
关键函数select id,username,createtime,createip from user order by id desc limit $offset , $num
offset为显示记录的起始ID号,
o
f
f
s
e
t
为
显
示
记
录
的
起
始
I
D
号
,
unm为要显示的数量。例如limit 1,5代表从id=1开始显示5条记录。
<?php
//本文件名字为edit.php
$conn = mysqli_connect('localhost', 'root', 'password');
//如果有错误,存在错误号
if (mysqli_errno($conn)) {
echo mysqli_error($conn);
exit;
}
mysqli_select_db($conn, 'test'); //选择数据库
mysqli_set_charset($conn, 'utf8'); //选择字符集
$count_sql = 'select count(id) as c from user';
$result = mysqli_query($conn, $count_sql);
$data = mysqli_fetch_assoc($result);
//得到总的用户数
$count = $data['c'];
$page = isset($_GET['page']) ? (int) $_GET['page'] : 1;
/*
if (isset($_GET['page'])) {
$page = (int) $_GET['page'];
} else {
$page = 1;
}
*/
//每页显示数
$num = 5;
//得到总页数
$total = ceil($count / $num);
if ($page <= 1) {
$page = 1;
}
if ($page >= $total) {
$page = $total;
}
$offset = ($page - 1) * $num;
$sql = "select id,username,createtime,createip from user order by id desc limit $offset , $num";
$result = mysqli_query($conn, $sql);
if ($result && mysqli_num_rows($result)) {
//存在数据则循环将数据显示出来
echo '<table width="800" border="1">';
while ($row = mysqli_fetch_assoc($result)) {
echo '<tr>';
echo '<td>' . $row['username'] . '</td>';
echo '<td>' . date('Y-m-d H:i:s', $row['createtime']) . '</td>';
echo '<td>' . long2ip((int)$row['createip']) . '</td>';
echo '<td><a href="edit.php?id=' . $row['id'] . '">编辑用户</a></td>';
echo '<td><a href="delete.php?id=' . $row['id'] . '">删除用户</a></td>';
echo '</tr>';
}
echo '<tr><td colspan="5"><a href="edit.php?page=1">首页</a> <a href="edit.php?page=' . ($page - 1) . '">上一页</a> <a href="edit.php?page=' . ($page + 1) . '">下一页</a> <a href="edit.php?page=' . $total . '">尾页</a> 当前是第 ' . $page . '页 共' . $total . '页 </td></tr>';
echo '</table>';
} else {
echo '没有数据';
}
mysqli_close($conn);
?>
效果如下: