主要功能实现:显示列表数据功能,删除数据功能、增添数据功能、更新数据功能
数据库信息:


视图:

页面处理:index.php作为首页数据显示页面,addition.php作为数据增加操作页面,update.php作为数据更新操作页面,doAction.php作为数据接收处理页面
1.显示列表数据功能的实现:主要是用到foreach遍历
index.php
<?php
<?php
# 1.建立到MySQL数据库的连接对象实例的同时打开指定的数据库。
$serverName = "localhost";
$userName = "root";
$password = "12345678";
$database = "qinfb_school";
$mysqli = @new mysqli($serverName,$userName,$password,$database);
if($mysqli -> connect_errno){
//如果有连接错误,得到错误信息
die('Connect Error:'.$mysqli -> connect_error);
}
# 2.设置默认的客户端编码方式
$mysqli -> set_charset('utf-8');
# 3.执行SQL查询。
$sql = "select stu_id,stu_name,stu_age from student";
$mysqli_result = $mysqli -> query($sql); //得到一个结果集对象
if($mysqli_result && $mysqli_result -> num_rows > 0){
//通过遍历获取所有的结果集
while($row = $mysqli_result -> fetch_assoc()){//产生1个关联数组
$rows[] = $row;
}
//释放结果集内容的三种形式:
$mysqli_result -> free();
//$mysqli_result -> free_result();
//$mysqli_result -> close();
}else {
echo '查询错误或者结果集当中没有记录!';
}
# 5.关闭数据库连接
$mysqli -> close();
?>
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title></title>
</head>
<body>
<h1>用户列表</h1>
<h2 style="text-align: center;width: 40%;border: 1px seagreen solid;">
<a href="addition.php">增加</a>
</h2>
<table border="1" width="40%" style="text-align: center;">
<tr>
<th>序号</th>
<th>学生</th>
<th>年龄</th>
<th>操作</th>
</tr>
<?php $i=1; foreach($rows as $row):?>
<tr>
<td><?php echo $i;?></td>
<td><?php echo $row["stu_name"];?></td>
<td><?php echo $row["stu_age"];?></td>
<td>
<a href="update.php?id=<?php echo $row['stu_id'];?>">修改</a>
<a href="doAction.php?act=delUser&id=<?php echo $row['stu_id']; ?>">删除</a>
</td>
</tr>
<?php $i++; endforeach;?>
</table>
</body>
</html>
2.数据的增加操作
addition.php
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title></title>
</head>
<body>
<h2>添加学生信息</h2>
<form action="doAction.php?act=addUser" method="post">
<table border="1" >
<tr>
<td>用户名:</td>
<td><input type="text" name="stu_name" required="required" placeholder="请输入用户名"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="stu_psd" required="required" placeholder="请输入密码"></td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="number" name="stu_age" min="1" max="30" placeholder="请输入年龄"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="添加用户"></td>
</tr>
</table>
</form>
</body>
</html>

3.删除数据的页面处理,首先要拿到指定删除行的id,告诉doAction.php页面,它要删除哪一条,让url携带一个对应的操作id参数给doAction.php页面,让doAction.php来加工处理,删除数据库的指定内容。
4.数据更新页面,同样要拿到用户点击了哪一行的id号,同时在update.php这个页面拿到原先在index.php显示的内容,修改内容后,告诉doAction.php,让它去加工处理,更新数据库
<?php
//根据用户传递过来的编号,查询到信息
header('content-type:text/html;charset=utf-8');//设置请求头
# 进行页面接收处理
# 1.创建数据库连接,建立到MySQL数据库的连接对象实例的同时打开指定的数据库。
$serverName = "localhost";
$userName = "root";
$password = "12345678";
$database = "qinfb_school";
$mysqli = @new mysqli($serverName,$userName,$password,$database);//创建mysqli实例
if($mysqli -> connect_errno){
//如果有连接错误,得到错误信息
die('Connect Error:'.$mysqli -> connect_error);
}
# 设置字符集
$mysqli -> set_charset('utf-8');
$id = $_GET["id"];//获取url传递过来的参数
$sql = "select stu_id,stu_psd,stu_name,stu_age from student where stu_id =".$id;
$mysqli_result = $mysqli -> query($sql);//执行query操作,返回的是一个$mysqli_result对象
if($mysqli_result && $mysqli_result -> num_rows > 0){//判断结果集>0
$row = $mysqli_result -> fetch_assoc();//获取结果集的记录
}
?>
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title></title>
</head>
<body>
<h2>添加学生信息</h2>
<form action="doAction.php?act=editUser&id=<?php echo $id;?>" method="post">
<table border="1" >
<tr>
<td>用户名:</td>
<td><input type="text" name="stu_name" value="<?php echo $row["stu_name"];?>" required="required" placeholder="请输入用户名"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="stu_psd" required="required" value="<?php echo $row["stu_psd"];?>" placeholder="请输入密码"></td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="number" name="stu_age" value="<?php echo $row["stu_age"];?>" min="1" max="30" placeholder="请输入年龄"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="更新数据"></td>
</tr>
</table>
</form>
</body>
</html>
5.数据处理页面,主要使用switch case来判断post请求来自哪个页面,相对执行什么样的操作,比如:收到addition.php页面传来的请求,它告诉doAction.php页面,我需要向数据库中增加一行用户数据,那么doAction.php页面就会去执行处理数据增加这个操作
doAction.php 核心页面,也是我们的运转页面,数据处理的加工厂
<?php
header('content-type:text/html;charset=utf-8');//设置请求头
# 进行页面接收处理
# 1.创建数据库连接,建立到MySQL数据库的连接对象实例的同时打开指定的数据库。
$serverName = "localhost";
$userName = "root";
$password = "12345678";
$database = "qinfb_school";
$mysqli = @new mysqli($serverName,$userName,$password,$database);//创建mysqli实例
if($mysqli -> connect_errno){
//如果有连接错误,得到错误信息
die('Connect Error:'.$mysqli -> connect_error);
}
# 设置字符集
$mysqli -> set_charset('utf-8');
#获取表单提交过来的信息
$stuName = $_POST["stu_name"];//获取form表单post过来的请求,提交的是学生名字
$stuName = $mysqli -> escape_string($stuName);//进行转译特殊字符,过滤输入的特殊字符,例如单引号、双引号等
$stuPsd = MD5($_POST["stu_psd"]);//提交的是密码,通过md5加密
$stuAge = $_POST["stu_age"];//提交的是年龄
$act = $_GET["act"];//$_GET获取url携带过来的参数,页面提交的操作类型
$id = $_GET["id"];//获取删除id行号
#根据不同操作完成不同的功能
switch($act){
case 'addUser':
//echo '添加用户的操作';
$sql = "insert student(stu_name,stu_psd,stu_age)
values('{$stuName}','{$stuPsd}','{$stuAge}')";
$res = $mysqli -> query($sql);//执行单条查询语句
if($res){//判断$res为真
#成功
//$affect_rows = $mysqli -> affected_rows;//返回前一次 MySQL 操作所影响的记录行数。
$insert_id = $mysqli -> insert_id;//返回上一步 INSERT 操作产生的 ID。
echo <<< end
<script>
alert('添加成功,往数据库中添加的第{$insert_id}位用户!')
location.href = 'index.php'
</script>
end;
exit();
}else{
# 失败
echo <<< end
<script>
alert('添加失败,请重新添加!')
location.href = 'addition.php'
</script>
end;
exit();
}
break;
case 'delUser':
//echo '删除记录'.$id;//
$sql = "delete from student where stu_id = ".$id;//删除指定的id行
$res = $mysqli -> query($sql);//执行单条查询语句
if($res){
$message = '删除成功';
}else {
$message = '删除失败';
}
$url = 'index.php';
echo <<< end
<script>
alert('{$message}!')
location.href = '{$url}'
</script>
end;
exit();
break;
case 'editUser':
$sql = "update student set stu_name='{$stuName}',stu_psd='{$stuPsd}',stu_age='{$stuAge}' where stu_id=".$id;
$res = $mysqli -> query($sql);
if($res){
$message = '更新成功';
}else {
$message = '更新失败';
}
$url = 'index.php';
echo <<< end
<script>
alert('{$message}!')
location.href = '{$url}'
</script>
end;
exit();
break;
}
?>
实际效果预览:
删除效果:

数据增加效果:

更新数据:

网友评论