zhengwei1949 / myblog

个人博客
10 stars 6 forks source link

用户管理系统思路 #143

Open zhengwei1949 opened 6 years ago

zhengwei1949 commented 6 years ago

后台的思维来理解网上的一切

复习前面学过的SQL语句

回顾我们之前的案例

new lesson

用户管理系统

提取头部

查询

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');

新增

<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');
}

编辑

header('content-type:text/html;charset=utf-8');
print_r($_GET['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');

php后续学习