目录
一、连接数据库、判断错误和设置字符集
$conn = mysqli_connect('localhost', 'root', 'root', 'php');
if (mysqli_errno($conn)) {
mysqli_error($conn);
exit;
}
mysqli_set_charset($conn, 'utf8');
二、准备并发送SQL语句
我们需要查询的的字段 用户ID,用户名、时间和IP都查出来。并且使用order by id 进行降序排序。
按照人的思维人们一般喜欢看最新注册的一批用户。而ID自增,也就是ID在越大,就是时间注册越新的用户。因此我们在写SQL语句的时写上的是order by id desc。
$sql = "select id,username,createtime,createip from user order by id desc";
$result = mysqli_query($conn, $sql);
三、判断结果
查询出来的结果只要SQL语句正确结果变量$result就为真。因此,在实现的时候我们需要多加一步判断,不仅判断$result。而且,判断查询出来的行数。
查询出来的行数可以使用mysqli_num_rows。这个函数要求传入$result查询的结果变量。
如果有结果则显示列表,如果没有结果我们产生一句提示即可。
if($result && mysqli_num_rows($result)){
//显示列表代码段
}else{
//提示没有结果的代码段
}
四、循环显示数据
所有结果我们需要使用列表的形式展示出来。表格的行和列和数据表的行和列是一样的。所示展示起来很方便。
先声明一个表格,每次循环的时候输出一行。将结果展示到各个列里面。
使用到的函数是mysqli_fetch_assoc,返回的会是一个关联数组。
这个函数读取一个结果集,会向后移动一次。读取到最后没有结果的时候会返回bool值的false。因此,我们选择while来配合mysqli_fetch_assoc。
每次循环的结果赋值给$row,$row中是关联数组。因此我在这次循环中,可以将行和列都显示出来。
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($row['createip']) . '</td>';
echo '</tr>';
}
echo '</table>';
五、增加编辑和删除控制
1.在删除的时候我们分为单选删除和多选删除。
2.而编辑的时候,我们会选择一个用户
3.单选择删除和编辑时需使用get方法传入ID,我们才知道要编辑或者删除的是哪个用户。
4.多选删除时,需要使用传入多个用户。因此,我们可以使用form表单,使用post方法来提交这批用户ID。
5.单选删除我们可以在delete.php后面我们跟上?加上id和值就点击时进行删除请求即可。
6. 编辑用户也是同理,我们在edit.php加上?写上id和值,点击时就知道是需要编辑的哪个用户了。
7.而多选删除,我们需要使用到html中的checkbox,传入多个用户ID的时候需要在name 后加上id[]。使用form表单将表格包起 来,在表格外加上一个submit标签就实现了多选删除。
六、关闭数据库连接
我们操作完数据库,关闭掉这个数据库连接。
mysqli_close($conn);
七、实现案例代码
<?php
$conn = mysqli_connect('localhost', 'root', 'root', 'php');
if (mysqli_errno($conn)) {
mysqli_error($conn);
exit;
}
mysqli_set_charset($conn, 'utf8');
$sql = "select id,username,createtime,createip from user order by id desc";
$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($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 '</table>';
} else {
echo '没有数据';
}
mysqli_close($conn);
?>