用戶管理數據庫(基於數據庫的增刪改查)

1,html頁面php

index.htmlcss

<!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>
  <nav class="navbar navbar-expand navbar-dark bg-dark fixed-top">
    <a class="navbar-brand" href="#">XXX管理系統</a>
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="index.html">用戶管理</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">商品管理</a>
      </li>
    </ul>
  </nav>
  <main class="container">
    <h1 class="heading">用戶管理 <a class="btn btn-link btn-sm" href="edit.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>
        <tr>
          <th scope="row">1</th>
          <td><img src="assets/img/icon-40.png" class="rounded" alt="張三"></td>
          <td>張三</td>
          <td>♂</td>
          <td>18</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
        <tr>
          <th scope="row">2</th>
          <td><img src="assets/img/icon-08.png" class="rounded" alt="李四"></td>
          <td>李四</td>
          <td>♀</td>
          <td>17</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
        <tr>
          <th scope="row">1</th>
          <td><img src="assets/img/icon-40.png" class="rounded" alt="張三"></td>
          <td>張三</td>
          <td>♂</td>
          <td>18</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
        <tr>
          <th scope="row">2</th>
          <td><img src="assets/img/icon-08.png" class="rounded" alt="李四"></td>
          <td>李四</td>
          <td>♀</td>
          <td>17</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
        <tr>
          <th scope="row">1</th>
          <td><img src="assets/img/icon-40.png" class="rounded" alt="張三"></td>
          <td>張三</td>
          <td>♂</td>
          <td>18</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
        <tr>
          <th scope="row">2</th>
          <td><img src="assets/img/icon-08.png" class="rounded" alt="李四"></td>
          <td>李四</td>
          <td>♀</td>
          <td>17</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
        <tr>
          <th scope="row">1</th>
          <td><img src="assets/img/icon-40.png" class="rounded" alt="張三"></td>
          <td>張三</td>
          <td>♂</td>
          <td>18</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
        <tr>
          <th scope="row">2</th>
          <td><img src="assets/img/icon-08.png" class="rounded" alt="李四"></td>
          <td>李四</td>
          <td>♀</td>
          <td>17</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
      </tbody>
    </table>
    <ul class="pagination justify-content-center">
      <li class="page-item"><a class="page-link" href="#">&laquo;</a></li>
      <li class="page-item"><a class="page-link" href="#">1</a></li>
      <li class="page-item"><a class="page-link" href="#">2</a></li>
      <li class="page-item"><a class="page-link" href="#">3</a></li>
      <li class="page-item"><a class="page-link" href="#">&raquo;</a></li>
    </ul>
  </main>
</body>
</html>

2,下一步,從數據庫中提取數據 ( php代碼)html

  ①創建鏈接mysql

  ②開始查詢sql

  ③遍歷結果集數據庫

<?php

    $connection=mysqli_connect('127.0.0.1','root','123456','demo03');
    if(!$connection){
        exit('鏈接數據庫失敗');
    }

    $query= mysqli_query($connection,'select * from users;');
    if(!$query){
        exit('查詢失敗');
    }

    while($row = mysqli_fetch_assoc($query)){
        var_dump($row);
    }

?>


<!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>
  <nav class="navbar navbar-expand navbar-dark bg-dark fixed-top">
    <a class="navbar-brand" href="#">XXX管理系統</a>
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="index.html">用戶管理</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">商品管理</a>
      </li>
    </ul>
  </nav>
  <main class="container">
    <h1 class="heading">用戶管理 <a class="btn btn-link btn-sm" href="edit.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>
        <tr>
          <th scope="row">1</th>
          <td><img src="assets/img/icon-40.png" class="rounded" alt="張三"></td>
          <td>張三</td>
          <td>♂</td>
          <td>18</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
        <tr>
          <th scope="row">2</th>
          <td><img src="assets/img/icon-08.png" class="rounded" alt="李四"></td>
          <td>李四</td>
          <td>♀</td>
          <td>17</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
        <tr>
          <th scope="row">1</th>
          <td><img src="assets/img/icon-40.png" class="rounded" alt="張三"></td>
          <td>張三</td>
          <td>♂</td>
          <td>18</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
        <tr>
          <th scope="row">2</th>
          <td><img src="assets/img/icon-08.png" class="rounded" alt="李四"></td>
          <td>李四</td>
          <td>♀</td>
          <td>17</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
        <tr>
          <th scope="row">1</th>
          <td><img src="assets/img/icon-40.png" class="rounded" alt="張三"></td>
          <td>張三</td>
          <td>♂</td>
          <td>18</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
        <tr>
          <th scope="row">2</th>
          <td><img src="assets/img/icon-08.png" class="rounded" alt="李四"></td>
          <td>李四</td>
          <td>♀</td>
          <td>17</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
        <tr>
          <th scope="row">1</th>
          <td><img src="assets/img/icon-40.png" class="rounded" alt="張三"></td>
          <td>張三</td>
          <td>♂</td>
          <td>18</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
        <tr>
          <th scope="row">2</th>
          <td><img src="assets/img/icon-08.png" class="rounded" alt="李四"></td>
          <td>李四</td>
          <td>♀</td>
          <td>17</td>
          <td class="text-center">
            <button class="btn btn-info btn-sm">編輯</button>
            <button class="btn btn-danger btn-sm">刪除</button>
          </td>
        </tr>
      </tbody>
    </table>
    <ul class="pagination justify-content-center">
      <li class="page-item"><a class="page-link" href="#">&laquo;</a></li>
      <li class="page-item"><a class="page-link" href="#">1</a></li>
      <li class="page-item"><a class="page-link" href="#">2</a></li>
      <li class="page-item"><a class="page-link" href="#">3</a></li>
      <li class="page-item"><a class="page-link" href="#">&raquo;</a></li>
    </ul>
  </main>
</body>
</html>

 

3,下一步,將打印出來的數據呈如今頁面上(保留 tbody 中的一個tr ,刪除其餘的 tr , 經過循環遍歷將打印出來的數據 插入到 tr 中)bootstrap

<?php

    $connection=mysqli_connect('127.0.0.1','root','123456','demo03');
    if(!$connection){
        exit('鏈接數據庫失敗');
    }

    $query= mysqli_query($connection,'select * from users;');
    if(!$query){
        exit('查詢失敗');
    }

    //while($row = mysqli_fetch_assoc($query)){
        //var_dump($row);
   // }

?>


<!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>
  <nav class="navbar navbar-expand navbar-dark bg-dark fixed-top">
    <a class="navbar-brand" href="#">XXX管理系統</a>
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="index.html">用戶管理</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">商品管理</a>
      </li>
    </ul>
  </nav>
  <main class="container">
    <h1 class="heading">用戶管理 <a class="btn btn-link btn-sm" href="add.php">添加</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 while($row=mysqli_fetch_assoc($query)):  ?>

         <tr>
             <th scope="row"><?php echo $row['id'] ?></th>
             <td><img src="<?php echo $row['avatar']; ?>" alt="<?php echo $row['name'];?>"></td>
             <td><?php echo $row['name']; ?></td>
             <td><?php echo $row['gender']== 0 ? '♂': '♀'; ?></td>
             <td><?php echo $row['birthday']; ?></td>
             <td class="text-center">
                  <button class="btn btn-info btn-sm">編輯</button>
                  <button class="btn btn-info btn-danger">刪除</button>
             </td>
          </tr>

        <?php endwhile ?>


      </tbody>
    </table>
    <ul class="pagination justify-content-center">
      <li class="page-item"><a class="page-link" href="#">«</a></li>
      <li class="page-item"><a class="page-link" href="#">1</a></li>
      <li class="page-item"><a class="page-link" href="#">2</a></li>
      <li class="page-item"><a class="page-link" href="#">3</a></li>
      <li class="page-item"><a class="page-link" href="#">»</a></li>
    </ul>
  </main>
</body>
</html>

 

4,刪除功能實現瀏覽器

  刪除是 a 標籤服務器

<?php

    $connection=mysqli_connect('127.0.0.1','root','123456','demo03');
    if(!$connection){
        exit('鏈接數據庫失敗');
    }

    $query= mysqli_query($connection,'select * from users;');
    if(!$query){
        exit('查詢失敗');
    }

?>


<!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>
  <nav class="navbar navbar-expand navbar-dark bg-dark fixed-top">
    <a class="navbar-brand" href="#">XXX管理系統</a>
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="index.html">用戶管理</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">商品管理</a>
      </li>
    </ul>
  </nav>
  <main class="container">
    <h1 class="heading">用戶管理 <a class="btn btn-link btn-sm" href="add.php">添加</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 while($row=mysqli_fetch_assoc($query)):  ?>

         <tr>
             <th scope="row"><?php echo $row['id'] ?></th>
             <td><img src="<?php echo $row['avatar']; ?>" alt="<?php echo $row['name'];?>"></td>
             <td><?php echo $row['name']; ?></td>
             <td><?php echo $row['gender']== 0 ? '': ''; ?></td>
             <td><?php echo $row['birthday']; ?></td>
             <td class="text-center">
                  <button class="btn btn-info btn-sm">編輯</button>
                  <a class="btn btn-danger btn-sm" href="delete.php? id=<?php echo $row['id']; ?>">刪除</a>
             </td>
          </tr>

        <?php endwhile ?>


      </tbody>
    </table>
    <ul class="pagination justify-content-center">
      <li class="page-item"><a class="page-link" href="#">&laquo;</a></li>
      <li class="page-item"><a class="page-link" href="#">1</a></li>
      <li class="page-item"><a class="page-link" href="#">2</a></li>
      <li class="page-item"><a class="page-link" href="#">3</a></li>
      <li class="page-item"><a class="page-link" href="#">&raquo;</a></li>
    </ul>
  </main>
</body>
</html>

delete.phppost

<?php
    //接收要刪除的數據 ID
    if(empty($_GET['id'])){
        exit('必須傳入指定參數');
    }
    $id=$_GET['id'];

    $connection=mysqli_connect('127.0.0.1' , 'root' , '123456' , 'demo03');
    if(!$connection){
        exit('鏈接數據庫失敗');
    }
   

   //$query=mysqli_query($connection,'delete from users where id in (1,2,3,4);); $query
=mysqli_query($connection,'delete from users where id in ('. $id .' );'); //字符串拼接 if(!$query){ exit('查詢失敗'); } $rowsAffected=mysqli_affected_rows($connection); if($rowsAffected <= 0){ exit('刪除失敗'); } header('Location: list.php');

    實際開發中,刪除功能沒有頁面

5,添加功能實現

  添加頁面add.html

<!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>
  <nav class="navbar navbar-expand navbar-dark bg-dark fixed-top">
    <a class="navbar-brand" href="#">XXX管理系統</a>
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="">用戶管理</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">商品管理</a>
      </li>
    </ul>
  </nav>
  <main class="container">
    <h1 class="heading">添加用戶</h1>
    <div class="alert alert-warning"></div>
    <form>
      <div class="form-group">
        <label for="avatar">頭像</label>
        <input type="file" class="form-control" id="avatar">
      </div>
      <div class="form-group">
        <label for="name">姓名</label>
        <input type="text" class="form-control" id="name">
      </div>
      <div class="form-group">
        <label for="gender">性別</label>
        <select class="form-control" id="gender">
          <option value="-1">請選擇性別</option>
          <option value="1">男</option>
          <option value="0">女</option>
        </select>
      </div>
      <div class="form-group">
        <label for="birthday">生日</label>
        <input type="date" class="form-control" id="birthday">
      </div>
      <button class="btn btn-primary">保存</button>
    </form>
  </main>
</body>
</html>

 

  2,添加功能邏輯

    ①把 index.php中的「添加」中的 a 標籤的 href 屬性值改成 "add.php"

    ②修改 add.php中表單 form 的屬性值, 以及其餘表單域 加  name 屬性

<!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>
  <nav class="navbar navbar-expand navbar-dark bg-dark fixed-top">
    <a class="navbar-brand" href="#">XXX管理系統</a>
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="">用戶管理</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">商品管理</a>
      </li>
    </ul>
  </nav>
  <main class="container">
    <h1 class="heading">添加用戶</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" , enctype="multipart/form-data" autocomplete="off">
      <div class="form-group">
        <label for="avatar">頭像</label>
        <input type="file" class="form-control" id="avatar" name="avatar">
      </div>
      <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="1">男</option>
          <option value="0">女</option>
        </select>
      </div>
      <div class="form-group">
        <label for="birthday">生日</label>
        <input type="date" class="form-control" id="birthday" name="birthday">
      </div>
      <button class="btn btn-primary">保存</button>
    </form>
  </main>
</body>
</html>

  不填數據,直接點擊保存按鈕,能夠經過瀏覽器的 NetWork 查看是否向服務器成功發送請求

  ③添加功能的php 腳本

    Ⅰ,驗證非空

    Ⅱ,取值

    Ⅲ,接收文件並驗證

    Ⅳ,保存

    Ⅴ,響應

 add.php

<?php

      if($_SERVER['REQUEST_METHOD']==='POST'){
        add();
      }

      function add(){
        //驗證非空
        if(empty($_POST['name'])){
            $GLOBALS['error_message']='請輸入姓名';
            return;
        }
        if( !( isset($_POST['gender']) && $_POST['gender'] !== '-1' )  ){
            $GLOBALS['error_message'] = '請選擇性別';
            return;
        }
        if(empty($_POST['birthday'])){
            $GLOBALS['error_message']='請輸入日期';
            return;
        }

        //取值
        $name=$_POST['name'];
        $gender=$_POST['gender'];
        $birthday=$_POST['birthday'];

        //接收文件並驗證
        if(empty($_FILES['avatar'])){
            $GLOBALS['error_message']='請上傳頭像';
            return;
        }

        $ext=pathinfo($_FILES['avatar']['name'], PATHINFO_EXTENSION); //文件的擴展名,jpg
        $target= '../target/avatar-' . uniqid() . '.' . $ext; //字符串拼接

        if(!move_uploaded_file($_FILES['avatar']['tmp_name'],$target)){
            $GLOBALS['error_message']='上傳頭像失敗';
            return;
        }

        //保存
        $avatar=substr($target,2);
        var_dump($name);
        var_dump($gender);
        var_dump($birthday);
        var_dump($avatar);

    }
?>
<!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> <nav class="navbar navbar-expand navbar-dark bg-dark fixed-top"> <a class="navbar-brand" href="#">XXX管理系統</a> <ul class="navbar-nav mr-auto"> <li class="nav-item active"> <a class="nav-link" href="">用戶管理</a> </li> <li class="nav-item"> <a class="nav-link" href="#">商品管理</a> </li> </ul> </nav> <main class="container"> <h1 class="heading">添加用戶</h1> <div class="alert alert-warning"></div> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" , enctype="multipart/form-data" autocomplete="off"> <div class="form-group"> <label for="avatar">頭像</label> <input type="file" class="form-control" id="avatar" name="avatar"> </div> <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="1">男</option> <option value="0">女</option> </select> </div> <div class="form-group"> <label for="birthday">生日</label> <input type="date" class="form-control" id="birthday" name="birthday"> </div> <button class="btn btn-primary">保存</button> </form> </main> </body> </html>

  ③下一步,將打印出來的插入數據放在頁面中展現

<?php

      if($_SERVER['REQUEST_METHOD']==='POST'){
        add();
      }

      function add(){
        //驗證非空
        if(empty($_POST['name'])){
            $GLOBALS['error_message']='請輸入姓名';
            return;
        }
        if( !( isset($_POST['gender']) && $_POST['gender'] !== '-1' )  ){
            $GLOBALS['error_message'] = '請選擇性別';
            return;
        }
        if(empty($_POST['birthday'])){
            $GLOBALS['error_message']='請輸入日期';
            return;
        }

        //取值
        $name=$_POST['name'];
        $gender=$_POST['gender'];
        $birthday=$_POST['birthday'];

        //接收文件並驗證
        if(empty($_FILES['avatar'])){
            $GLOBALS['error_message']='請上傳頭像';
            return;
        }

        $ext=pathinfo($_FILES['avatar']['name'], PATHINFO_EXTENSION); //文件的擴展名,jpg
        $target= '../target/avatar-' . uniqid() . '.' . $ext; //字符串拼接

        if(!move_uploaded_file($_FILES['avatar']['tmp_name'],$target)){
            $GLOBALS['error_message']='上傳頭像失敗';
            return;
        }

        //保存
        $avatar=substr($target,2);
//        var_dump($name);
//        var_dump($gender);
//        var_dump($birthday);
//        var_dump($avatar);



      //創建鏈接,開始查詢,響應
      $connection=mysqli_connect('127.0.0.1','root','123456','demo03');
      if(!$connection){
        //exit='鏈接數據庫失敗';
        $GLOBALS['error_message']='鏈接數據庫失敗';
        return;
      }

      $query = mysqli_query($connection, "insert into users values (null, '{$name}', {$gender}, '{$birthday}', '{$avatar}'); ");
      if(!$query){
        //exit='查詢過程失敗';
        $GLOBALS['error_message'] ='查詢過程失敗';
        return;
      }

      $rowsAffected=mysqli_affected_rows($connection);
      if($rowsAffected !==1){
        //exit='添加數據失敗';
        $GLOBALS['error_message']='添加數據失敗';
        return;
      }

      //響應
      header('Location: list.php');

 }


?>


<!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>
  <nav class="navbar navbar-expand navbar-dark bg-dark fixed-top">
    <a class="navbar-brand" href="#">XXX管理系統</a>
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="">用戶管理</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">商品管理</a>
      </li>
    </ul>
  </nav>
  <main class="container">
    <h1 class="heading">添加用戶</h1>

    <?php if(isset($error_message)): ?>
    <div class="alert alert-warning">
        <?php echo $error_message; ?>
    </div>
    <?php endif ?>


    <div class="alert alert-warning"></div>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" , enctype="multipart/form-data" autocomplete="off">
      <div class="form-group">
        <label for="avatar">頭像</label>
        <input type="file" class="form-control" id="avatar" name="avatar">
      </div>
      <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="1">男</option>
          <option value="0">女</option>
        </select>
      </div>
      <div class="form-group">
        <label for="birthday">生日</label>
        <input type="date" class="form-control" id="birthday" name="birthday">
      </div>
      <button class="btn btn-primary">保存</button>
    </form>
  </main>
</body>
</html>

     一個bug,上傳本機圖片做爲頭像沒法呈現出來(應該問題出在當時設置頭像路徑的時候出現錯誤,以後添加上傳的頭像路徑和以前的頭像路徑不一致)

 

6,編輯功能實現

  ①編輯功能的頁面和添加功能的頁面是同樣的

     先將 list.php中的 「編輯」改爲  a 連接 並添加 href 屬性

 <a class="btn btn-info btn-sm" href="edit.php">編輯</a>

   而後寫出編輯頁面 exit.html (和add.html)頁面相同

<!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>
  <nav class="navbar navbar-expand navbar-dark bg-dark fixed-top">
    <a class="navbar-brand" href="#">XXX管理系統</a>
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="">用戶管理</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">商品管理</a>
      </li>
    </ul>
  </nav>
  <main class="container">
    <h1 class="heading">編輯lisa</h1>

    <?php if(isset($error_message)): ?>
    <div class="alert alert-warning">
        <?php echo $error_message; ?>
    </div>
    <?php endif ?>


    <div class="alert alert-warning"></div>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" , enctype="multipart/form-data" autocomplete="off">
      <div class="form-group">
        <label for="avatar">頭像</label>
        <input type="file" class="form-control" id="avatar" name="avatar">
      </div>
      <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="1">男</option>
          <option value="0">女</option>
        </select>
      </div>
      <div class="form-group">
        <label for="birthday">生日</label>
        <input type="date" class="form-control" id="birthday" name="birthday">
      </div>
      <button class="btn btn-primary">保存</button>
    </form>
  </main>
</body>
</html>

    在 edit.html中添加 php 腳本

    edit.php

<?php

     //接收要修改的數據
     if(empty($_GET['id'])){
        exit('必須傳入指定參數');
     }
     $id = $_GET['id'];

     //創建鏈接,開始查詢
     $connection=mysqli_connect('127.0.0.1','root' , '123456' , 'demo03');
     if(!$connection){
        exit('鏈接數據庫失敗');
     }

     $query=mysqli_query($connection, "select * from users where id= {$id} limit 1;");//由於ID是惟一的,那麼找到第一個知足條件的就不用再繼續了, limit 1
     if(!$query){
        exit('查詢數據失敗');
     }

     $row = mysqli_fetch_assoc($query);
     if(!$row){
        exit('找不到要編輯的數據');
     }

?>

 最終編輯功能的 edit.php

<?php

     //接收要修改的數據
     if(empty($_GET['id'])){
        exit('必須傳入指定參數');
     }
     $id = $_GET['id'];

     //創建鏈接,開始查詢
     $connection=mysqli_connect('127.0.0.1','root' , '123456' , 'demo03');
     if(!$connection){
        exit('鏈接數據庫失敗');
     }

     $query=mysqli_query($connection, "select * from users where id= {$id} limit 1;");//由於ID是惟一的,那麼找到第一個知足條件的就不用再繼續了, limit 1
     if(!$query){
        exit('查詢數據失敗');
     }

     $row = mysqli_fetch_assoc($query);
     if(!$row){
        exit('找不到要編輯的數據');
     }

     if ($_SERVER['REQUEST_METHOD'] === 'POST') {
       edit();
     }


     function edit(){
        global $row;
        if(empty($_POST['name'])){
            $GLOBALS['error_message']='請輸入姓名';
            return;
        }
        if(!(isset($_POST['gender']) && $_POST['gender'] !== '-1')) {
            $GLOBALS['error_message'] = '請選擇性別';
            return;
        }

        if (empty($_POST['birthday'])) {
            $GLOBALS['error_message'] = '請輸入日期';
            return;
         }

         //取值
          $row['name'] = $_POST['name'];
          $row['gender'] = $_POST['gender'];
          $row['birthday'] = $_POST['birthday'];

          //有上傳就修改
          if (isset($_FILES['avatar']) && $_FILES['avatar']['error'] === UPLOAD_ERR_OK) {
              // 用戶上傳了新頭像 -> 用戶但願修改頭像
              $ext = pathinfo($_FILES['avatar']['name'], PATHINFO_EXTENSION);
              $target = 'D:/www/site6/code/demo/target/avatar-' . uniqid() . '.' . $ext;
              if (!move_uploaded_file($_FILES['avatar']['tmp_name'], $target)) {
                $GLOBALS['error_message'] = '上傳頭像失敗';
                return;
              }
              $row['avatar'] = substr($target, 2);
            }

            //打印出修改以後的信息
            var_dump($row);

     }

?>



<!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>
  <nav class="navbar navbar-expand navbar-dark bg-dark fixed-top">
    <a class="navbar-brand" href="#">XXX管理系統</a>
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="index.html">用戶管理</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">商品管理</a>
      </li>
    </ul>
  </nav>
  <main class="container">
    <h1 class="heading">編輯「<?php echo $row['name']; ?>」</h1>

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>?id=<?php echo $row['id']; ?>"  method="post" enctype="multipart/form-data">
      <img src="<?php echo $row['avatar]; ?>" alt="">
      <div class="form-group">
        <label for="avatar">頭像</label>
        <input type="file" class="form-control" id="avatar" name="avatar"> //文件域不能設置默認值
      </div>
      <div class="form-group">
        <label for="name">姓名</label>
        <input type="text" class="form-control" id="name" name="name" value="<?php echo $row[''name]; ?>">
      </div>
      <div class="form-group">
        <label for="gender">性別</label>
        <select class="form-control" id="gender" name="gender">
          <option value="-1">請選擇性別</option>
          <option value="1"<?php echo $row['gender'] === '1' ? ' selected': ''; ?>>男</option>
          <option value="0"<?php echo $row['gender'] === '0' ? ' 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 $row['birthday'];?>">
      </div>
      <button class="btn btn-primary">保存</button>
    </form>
  </main>
</body>
</html>

 

7,這個案例的 bug

  ①頁面展現成功

  ②刪除功能成功實現

  ③添加功能能夠操做,可是頭像上傳不能呈現

  ④編輯功能有問題,報錯

相關文章
相關標籤/搜索