php数据库操作之列表显示

目录

一、连接数据库、判断错误和设置字符集

二、准备并发送SQL语句

三、判断结果

四、循环显示数据

五、增加编辑和删除控制

六、关闭数据库连接

七、实现案例代码


一、连接数据库、判断错误和设置字符集

$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);
?>

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值