Open zhengwei1949 opened 6 years ago
水果案例
注册案例
用户管理系统
用一张图来理解客户端、服务器、数据库之间的关系
DROP TABLE IF EXISTS `demo`; CREATE TABLE `demo` ( `id` int(11) NOT NULL AUTO_INCREMENT, `src` varchar(255) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `gender` char(2) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`) );
INSERT INTO `demo` VALUES ('1', './assets/img/icon-04.png', '小明', '男', '20'); INSERT INTO `demo` VALUES ('2', './assets/img/icon-05.png', '小李', '女', '21'); INSERT INTO `demo` VALUES ('3', './assets/img/icon-06.png', '小马', '男', '22'); INSERT INTO `demo` VALUES ('4', './assets/img/icon-07.png', '小宋', '女', '19');
再次思考:上面的设计是否合理
重新设计数据库表的结构
CREATE TABLE `ceshi` ( `id` int(11) NOT NULL AUTO_INCREMENT, `src` varchar(255) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `gender` char(2) DEFAULT '男', `birthday` date DEFAULT NULL, PRIMARY KEY (`id`) ); INSERT INTO `ceshi` VALUES ('1', './assets/img/icon-04.png', '小明', '男', '2010-06-03'); INSERT INTO `ceshi` VALUES ('2', './assets/img/icon-05.png', '小李', '男', '2011-06-03'); INSERT INTO `ceshi` VALUES ('3', './assets/img/icon-06.png', '小马', '女', '1999-06-03'); INSERT INTO `ceshi` VALUES ('4', './assets/img/icon-07.png', '小王', '女', '2000-06-03');
<?php /** * select 查询操作 * @param mixed $sql 示例参数:"select * from demo"; * @return mixed 如果返回值为false,则说明查询失败,否则返回值为数组,建立使用var_dump来打印返回值 */ function select($sql) { //建立数据库连接 主机域名localhost 账号root 密码root 连接的数据库mybase $conn = mysqli_connect('localhost', 'root', 'root', 'mybase'); if (!$conn) { die('连接失败'); } //设置编码为utf8 mysqli_set_charset($conn, 'utf8'); $res = mysqli_query($conn, $sql); if ($res && mysqli_num_rows($res) > 0) { while ($arr = mysqli_fetch_assoc($res)) { $result[] = $arr; } mysqli_close($conn);//释放连接 return $result; } else { mysqli_close($conn);//释放连接 //不管操作失败还是没获取数据统一返回false return false; } } /** * opt 增删改操作相关函数 * @param mixed $sql * @return mixed 如果返回值为true,说明操作成功,如果返回值为false,说明操作失败 */ function opt($sql) { $conn = mysqli_connect('localhost', 'root', 'root', 'mybase'); mysqli_set_charset($conn, 'utf8'); $res = mysqli_query($conn, $sql); if ($res && mysqli_affected_rows($conn) > 0) { return true;//表示成功影响了行数,操作成功 } else { return false; } mysqli_close($conn); } ?>
include_once "./mysql.php"; $res = select("select * from demo"); var_dump($res);
<?php include_once "./mysql.php"; $res = select("select * from demo"); // var_dump($res); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>XXX管理系统</title> <link rel="stylesheet" href="assets/css/bootstrap.css"> <link rel="stylesheet" href="assets/css/style.css"> </head> <body> <?php include_once "./_nav.php"; ?> <main class="container"> <h1 class="heading">用户管理 <a class="btn btn-link btn-sm" href="add.html">添加</a></h1> <table class="table table-hover"> <thead> <tr> <th>#</th> <th>头像</th> <th>姓名</th> <th>性别</th> <th>年龄</th> <th class="text-center" width="140">操作</th> </tr> </thead> <tbody> <?php if(is_array($res)){ ?> <?php foreach($res as $key=>$value){ ?> <tr> <th scope="row"> <?php echo $value['id'];?> </th> <td> <img src="<?php echo $value['src']; ?>" class="rounded"> </td> <td> <?php echo $value['name']; ?> </td> <td> <?php echo $value['gender']; ?> </td> <td> <?php echo $value['birthday']; ?> </td> <td class="text-center"> <a href="#" class="btn btn-info btn-sm">编辑</a> <a href="#" class="btn btn-danger btn-sm">删除</a> </td> </tr> <?php } ?> <?php }else{ ?> <tr> <td colspan='6'>暂无数据</td> </tr> <?php } ?> </tbody> </table> </main> </body> </html>
<?php header('content-type:text/html;charset=utf-8'); include_once "./mysql.php"; $res = select("select * from ceshi"); var_dump($res); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>XXX管理系统</title> <link rel="stylesheet" href="assets/css/bootstrap.css"> <link rel="stylesheet" href="assets/css/style.css"> </head> <body> <?php include_once "./_nav.php";?> <main class="container"> <h1 class="heading">用户管理 <a class="btn btn-link btn-sm" href="add.html">添加</a></h1> <table class="table table-hover"> <thead> <tr> <th>#</th> <th>头像</th> <th>姓名</th> <th>性别</th> <th>年龄</th> <th class="text-center" width="140">操作</th> </tr> </thead> <?php if (is_array($res)) { ?> <?php foreach ($res as $key => $value) { ?> <tr> <th scope="row"> <?php echo $value['id']; ?> </th> <td> <img src="<?php echo $value['src']; ?>" class="rounded"> </td> <td> <?php echo $value['name']; ?> </td> <td> <?php echo $value['gender']; ?> </td> <td> <?php $age = ceil((time() - strtotime($value['birthday'])) / (365 * 24 * 60 * 60)); ?> <?php echo $age; ?> </td> <td class="text-center"> <a href="#" class="btn btn-info btn-sm">编辑</a> <a href="#" class="btn btn-danger btn-sm">删除</a> </td> </tr> <?php } ?> <?php } else { ?> <tr> <td colspan='6'>暂无数据</td> </tr> <?php } ?> </tbody> </table> </main> </body> </html>
<a href="del.php?id=<?php echo $value['id'] ?>" class="btn btn-danger btn-sm">删除</a>
header('content-type:text/html;charset=utf-8'); print_r($_GET);
header('content-type:text/html;charset=utf-8'); - // print_r($_GET); + include_once "./mysql.php";
delete from ceshi where id = $id
header('content-type:text/html;charset=utf-8'); // print_r($_GET); $id = $_GET['id']; include_once "./mysql.php"; $sql = "delete from ceshi where id = $id"; $res = opt($sql); // var_dump($res); if ($res) { echo '删除成功'; } else { echo '删除失败'; } header('refresh:2;url=static.php');
修改static.php中的添加的超链接为add.php
add.php
添加form表单的action,method,enctype属性
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
header('content-type:text/html;charset=utf-8'); if($_SERVER['REQUEST_METHOD'] == 'POST'){ print_r($_POST); print_r($_FILES); }
header('content-type:text/html;charset=utf-8'); if($_SERVER['REQUEST_METHOD'] == 'POST'){ // print_r($_POST); // print_r($_FILES); if(isset($_FILES['img'])&&$_FILES['img']['error'] == 0){ $file = $_FILES['img']; $name = time().rand(); $ext = strrchr($file['name'],'.'); $fileName = './assets/img/'.$name.$ext; move_uploaded_file($file['tmp_name'],$fileName); } }
<?php header('content-type:text/html;charset=utf-8'); if ($_SERVER['REQUEST_METHOD'] == 'POST') { // print_r($_POST); // print_r($_FILES); if (isset($_FILES['img']) && $_FILES['img']['error'] == 0) { $file = $_FILES['img']; $name = time() . rand(); $ext = strrchr($file['name'], '.'); $fileName = './assets/img/' . $name . $ext; move_uploaded_file($file['tmp_name'], $fileName); include_once "./mysql.php"; $name = $_POST['name']; $gender = $_POST['gender']; $birthday = $_POST['birthday']; $src = $fileName; $sql = "insert into ceshi values(null,'$src','$name','$gender','$birthday')"; $res = opt($sql); var_dump($res); } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>XXX管理系统</title> <link rel="stylesheet" href="assets/css/bootstrap.css"> <link rel="stylesheet" href="assets/css/style.css"> </head> <body> <?php include_once "./_nav.php"; ?> <main class="container"> <h1 class="heading">添加用户</h1> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"> <div class="form-group"> <label for="name">姓名</label> <input type="text" class="form-control" id="name" name="name"> </div> <div class="form-group"> <label for="gender">性别</label> <select class="form-control" id="gender" name="gender"> <option value="-1">请选择性别</option> <option value="男">男</option> <option value="女">女</option> </select> </div> <div class="form-group"> <label for="birthday">生日</label> <input type="date" class="form-control" id="birthday" name="birthday"> </div> <div class="form-group"> <label for="img">头像</label> <input type="file" class="form-control" id="img" name="img"> </div> <button class="btn btn-primary">保存</button> </form> </main> </body> </html>
if($res){ echo '增加成功'; header('refresh:2;url=static.php'); }else{ echo '增加失败'; header('refresh:2;url=add.php'); }
edit.php?id=<?php echo $value['id'] ?>
header('content-type:text/html;charset=utf-8'); print_r($_GET['id']);
拷贝增加的html到编辑页面
根据当前传过来的id去数据库中取对应的数据
<?php header('content-type:text/html;charset=utf-8'); // print_r($_GET['id']); include_once "./mysql.php"; $id = $_GET['id']; $sql = "select * from ceshi where id = $id"; $res = select($sql); print_r($res); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>XXX管理系统</title> <link rel="stylesheet" href="assets/css/bootstrap.css"> <link rel="stylesheet" href="assets/css/style.css"> </head> <body> <?php include_once "./_nav.php"; ?> <main class="container"> <h1 class="heading">添加用户</h1> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"> <div class="form-group"> <label for="name">姓名</label> <input type="text" class="form-control" id="name" name="name"> </div> <div class="form-group"> <label for="gender">性别</label> <select class="form-control" id="gender" name="gender"> <option value="-1">请选择性别</option> <option value="男">男</option> <option value="女">女</option> </select> </div> <div class="form-group"> <label for="birthday">生日</label> <input type="date" class="form-control" id="birthday" name="birthday"> </div> <div class="form-group"> <label for="img">头像</label> <input type="file" class="form-control" id="img" name="img"> </div> <button class="btn btn-primary">保存</button> </form> </main> </body> </html>
<?php header('content-type:text/html;charset=utf-8'); // print_r($_GET['id']); include_once "./mysql.php"; $id = $_GET['id']; $sql = "select * from ceshi where id = $id"; $res = select($sql); $data = $res[0]; // print_r($res); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>XXX管理系统</title> <link rel="stylesheet" href="assets/css/bootstrap.css"> <link rel="stylesheet" href="assets/css/style.css"> </head> <body> <?php include_once "./_nav.php"; ?> <main class="container"> <h1 class="heading">添加用户</h1> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data"> <div class="form-group"> <label for="name">姓名</label> <input type="text" class="form-control" id="name" name="name" value="<?php echo $data['name']; ?>"> </div> <div class="form-group"> <label for="gender">性别</label> <select class="form-control" id="gender" name="gender"> <option value="-1">请选择性别</option> <option value="男" <?php echo $data['gender']=='男'?'selected':''; ?>>男</option> <option value="女" <?php echo $data['gender'] == '女' ? 'selected' : ''; ?>>女</option> </select> </div> <div class="form-group"> <label for="birthday">生日</label> <input type="date" class="form-control" id="birthday" name="birthday" value="<?php echo $data['birthday']; ?>"> </div> <div class="form-group"> <label for="img">头像</label> <input type="file" class="form-control" id="img" name="img"> </div> <button class="btn btn-primary">保存</button> </form> </main> </body> </html>
<form action="edit_handler.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="id" value="<?php echo $data['id']; ?>">
header('content-type:text/html;charset=utf-8'); print_r($_POST); print_r($_FILES);
header('content-type:text/html;charset=utf-8'); // print_r($_POST); // print_r($_FILES); if(isset($_FILES['img']) && $_FILES['img']['error'] == 0){ $file = $_FILES['img']; $name = time().rand(); $ext = strrchr($file['name'],'.'); $fileName = './assets/img/'.$name.$ext; move_uploaded_file($file['tmp_name'],$fileName); }
header('content-type:text/html;charset=utf-8'); // print_r($_POST); // print_r($_FILES); if(isset($_FILES['img']) && $_FILES['img']['error'] == 0){ $file = $_FILES['img']; $name = time().rand(); $ext = strrchr($file['name'],'.'); $fileName = './assets/img/'.$name.$ext; move_uploaded_file($file['tmp_name'],$fileName); } include_once "./mysql.php"; $id = $_POST['id']; $name = $_POST['name']; $gender = $_POST['gender']; $birthday = $_POST['birthday']; $src = $fileName; $sql = "update ceshi set src='$src',name='$name',gender='$gender',birthday='$birthday' where id = $id"; $res = opt($sql); var_dump($res);
header('content-type:text/html;charset=utf-8'); // print_r($_POST); // print_r($_FILES); if(isset($_FILES['img']) && $_FILES['img']['error'] == 0){ $file = $_FILES['img']; $name = time().rand(); $ext = strrchr($file['name'],'.'); $fileName = './assets/img/'.$name.$ext; move_uploaded_file($file['tmp_name'],$fileName); } include_once "./mysql.php"; $id = $_POST['id']; $name = $_POST['name']; $gender = $_POST['gender']; $birthday = $_POST['birthday']; $src = $fileName; $sql = "update ceshi set src='$src',name='$name',gender='$gender',birthday='$birthday' where id = $id"; $res = opt($sql); // var_dump($res); if($res){ echo '编辑成功'; }else{ echo '编辑失败'; } header('refresh:2;url=static.php');
header('content-type:text/html;charset=utf-8'); // print_r($_POST); // print_r($_FILES); if(isset($_FILES['img']) && $_FILES['img']['error'] == 0){ $file = $_FILES['img']; $name = time().rand(); $ext = strrchr($file['name'],'.'); $fileName = './assets/img/'.$name.$ext; move_uploaded_file($file['tmp_name'],$fileName); } include_once "./mysql.php"; $id = $_POST['id']; $name = $_POST['name']; $gender = $_POST['gender']; $birthday = $_POST['birthday']; if(isset($fileName)){ $src = $fileName; $sql = "update ceshi set src='$src',name='$name',gender='$gender',birthday='$birthday' where id = $id"; }else{ $sql = "update ceshi set name='$name',gender='$gender',birthday='$birthday' where id = $id"; } $res = opt($sql); // var_dump($res); if($res){ echo '编辑成功'; }else{ echo '编辑失败'; } header('refresh:2;url=static.php');
以后台的思维来理解网上的一切
复习前面学过的SQL语句
回顾我们之前的案例
水果案例
注册案例
用户管理系统
用一张图来理解客户端、服务器、数据库之间的关系
new lesson
用户管理系统
提取头部
查询
再次思考:上面的设计是否合理
重新设计数据库表的结构
删除
新增
修改static.php中的添加的超链接为
add.php
添加form表单的action,method,enctype属性
编辑
edit.php?id=<?php echo $value['id'] ?>
拷贝增加的html到编辑页面
根据当前传过来的id去数据库中取对应的数据
php后续学习