File : crud_devbanban.php. ID : 9151
Skin : Default | Sons-of-obsidian | Sunburst | Highlighter | Frame
<?php
/* โปรแกรมโดย พิศิษฐ์ บวรเลิศสุธี ต้นฉบับจาก https://devbanban.com/?p=4146
นำโค้ดมาใช้เพื่อการศึกษา เรื่องโค้ดแบบ crud และการรวมฟังก์ชันแบบ sequential structure
สร้าง database และ table และ insert มี แนะนำ 2 วิธี
1. mysql -u root -p < devbanban.sql
2. phpmyadmin
---
CREATE DATABASE IF NOT EXISTS `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `test`;
CREATE TABLE `tbl_member` (
  `id` int(11) NOT NULL,
  `name` varchar(50) NOT NULL,
  `surname` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `tbl_member` (`id`, `name`, `surname`) VALUES
(1, 'นายจักรพัฒน์', 'ไชยแก้ว'),
(2, 'นายวรายุทธ', 'ขันก๋า'),
(3, 'นายสุริยา', 'พุฒดวง'),
(4, 'นางสาวนิชาภา', 'กะจันทร์'),
(5, 'นายสัมพันธ์', 'สุริยา'),
(6, 'นางสาวกวินทรา', 'ยะป๊อก'),
(7, 'นายพิศิษฐ์', 'บวรเลิศสุธี'),
(8, 'นายบุรินทร์', 'รุจจนพันธุ์'),
(9, 'นายวิเชพ', 'ใจบุญ');
(10, 'นางสาวเกศริน', 'อินเพลา');
(11, 'นางศศิวิมล', 'แรงสิงห์');
ALTER TABLE `tbl_member` ADD PRIMARY KEY (`id`);
ALTER TABLE `tbl_member`  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;
*/
$index = "crud_devbanban.php";
/* connect.php */
$servername = "localhost";
$username = "root";
$password = ""; //ถ้าไม่ได้ตั้งรหัสผ่านให้ลบ yourpassword ออก
try {
  $conn = new PDO("mysql:host=$servername;dbname=test", $username, $password);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
/* del.php */
if(isset($_GET['id']) && isset($_GET['act']) && $_GET['act'] == "del"){
//require_once 'connect.php';
$id = $_GET['id'];
$stmt = $conn->prepare('DELETE FROM tbl_member WHERE id=:id');
$stmt->bindParam(':id', $id , PDO::PARAM_INT);
$stmt->execute();
echo '<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert-dev.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.css">';
// sweet alert 
if($stmt->rowCount() > 0){
  echo '<script>
    setTimeout(function() {
    swal({
      title: "ลบข้อมูลสำเร็จ", type: "success"
    }, function() { window.location = "' . $index .'"; }); 
    }, 1000);
  </script>';
  }else{
    echo '<script>
      setTimeout(function() {
      swal({
        title: "เกิดข้อผิดพลาด", type: "error"
      }, function() { window.location = "' . $index .'"; });
      }, 1000);
    </script>';
  }
  $conn = null;
  die('<meta http-equiv="refresh" content="0; url='. $index .'">');
} 

/* formedit.php */
if(isset($_GET['id']) && isset($_GET['act']) && $_GET['act'] == "edit"){
echo '<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet" 
integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
<title>Basic CRUD PHP PDO by devbanban.com 2021</title>
</head><body>';
if(isset($_GET['id'])){
  //require_once 'connect.php';
  $stmt = $conn->prepare("SELECT* FROM tbl_member WHERE id=?");
  $stmt->execute([$_GET['id']]);
  $row = $stmt->fetch(PDO::FETCH_ASSOC);
  if($stmt->rowCount() < 1){
    header('Location: '. $index);
    exit();
  }
}
die('<div class="container">
<div class="row">
<div class="col-md-4"><br/>
<h4>ฟอร์มแก้ไขข้อมูล</h4>
<form action="'.$index.'" method="post">
<div class="mb-1">
  <label for="name" class="col-sm-2 col-form-label"> ชื่อ :  </label>
  <div class="col-sm-10">
    <input type="text" name="name" class="form-control" required value="'. $row['name'].'" minlength="3">
  </div>
</div>
<div class="mb-1">
  <label for="name" class="col-sm-2 col-form-label"> นามสกุล :  </label>
    <div class="col-sm-10">
      <input type="text" name="surname" class="form-control" required value="'. $row['surname'].'" minlength="3">
    </div>
</div>
<input type="hidden" name="id" value="'. $row['id'].'">
<button type="submit" class="btn btn-primary">แก้ไขข้อมูล</button>
</form>
</div></div></div>
</body></html>');
}

/* formedit_db.php */
if(isset($_POST['name']) && isset($_POST['surname']) && isset($_POST['id'])) {
// require_once 'connect.php';
$id = $_POST['id'];
$name = $_POST['name'];
$surname = $_POST['surname'];
$stmt = $conn->prepare("UPDATE  tbl_member SET name=:name, surname=:surname WHERE id=:id");
$stmt->bindParam(':id', $id , PDO::PARAM_INT);
$stmt->bindParam(':name', $name , PDO::PARAM_STR);
$stmt->bindParam(':surname', $surname , PDO::PARAM_STR);
$stmt->execute();
// sweet alert 
echo '<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert-dev.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.css">';
if($stmt->rowCount() > 0){
  echo '<script>
    setTimeout(function() {
      swal({
        title: "แก้ไขข้อมูลสำเร็จ", type: "success"
      }, function() { window.location = "'. $index .'"; });
      }, 1000);
      </script>';
}else{
  echo '<script>
    setTimeout(function() {
      swal({
        title: "เกิดข้อผิดพลาด", type: "error"
      }, function() { window.location = "'. $index .'"; });
      }, 1000);
      </script>';
}
$conn = null; 
die('<meta http-equiv="refresh" content="0; url='. $index .'">');
}

/* formAdd.php */
if(isset($_GET['act']) && $_GET['act'] == "add"){
die ('<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet" 
integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
<title>Basic CRUD PHP PDO by devbanban.com 2021</title>
</head><body>
<div class="container">
  <div class="row">
    <div class="col-md-4"> <br/> 
      <h4>ฟอร์มเพิ่มข้อมูล</h4>
        <form action="?" method="post">
          <div class="mb-1">
            <label for="name" class="col-sm-2 col-form-label"> ชื่อ :  </label>
            <div class="col-sm-10">
              <input type="text" name="name" class="form-control" required minlength="3" placeholder="ชื่อ">
            </div>
         </div>
         <div class="mb-1">
           <label for="name" class="col-sm-2 col-form-label"> นามสกุล :  </label>
           <div class="col-sm-10">
             <input type="text" name="surname" class="form-control" required minlength="3" placeholder="นามสกุล">
           </div>
         </div>
         <button type="submit" class="btn btn-primary">เพิ่มข้อมูล</button>
       </form>
     </div>
   </div>
</div>
</body></html>');
}

/* formAdd_db.php */
if(isset($_POST['name']) && isset($_POST['surname'])){
// require_once 'connect.php';
  $name = $_POST['name'];
  $surname = $_POST['surname'];
  $stmt = $conn->prepare("INSERT INTO tbl_member (name, surname) VALUES (:name, :surname)");
  $stmt->bindParam(':name', $name, PDO::PARAM_STR);
  $stmt->bindParam(':surname', $surname , PDO::PARAM_STR);
  $result = $stmt->execute();
  // sweet alert 
  echo '<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert-dev.js"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.css">';
  if($result){
    echo '<script>
    setTimeout(function() {
    swal({
      title: "เพิ่มข้อมูลสำเร็จ", type: "success"
    }, function() { window.location = "index.php"; });
    }, 1000);
    </script>';
  }else{
    echo '<script>
    setTimeout(function() {
    swal({
      title: "เกิดข้อผิดพลาด", type: "error"
    }, function() { window.location = "index.php"; });
    }, 1000);
    </script>';
  }
  $conn = null; //close connect db
  die('<meta http-equiv="refresh" content="0; url='. $index .'">');
} //isset

/* index.php */
?><!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet" 
integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
<title>Basic CRUD PHP PDO by devbanban.com 2021</title></head>
<body>
<div class="container">
  <div class="row">
    <div class="col-md-12"> <br/>
      <h3>รายการสมาชิก <a href="?act=add" class="btn btn-info">+เพิ่มข้อมูล</a> </h3>
      <table class="table table-striped  table-hover table-responsive table-bordered">
      <thead>
      <tr>
      <th width="5%">ลำดับ</th>
      <th width="40%">ชื่อ</th>
      <th width="45%">นามสกุล</th>
      <th width="5%">แก้ไข</th>
      <th width="5%">ลบ</th>
      </tr>
      </thead>
      <tbody>
<?php
// require_once 'connect.php';
$stmt = $conn->prepare("SELECT* FROM tbl_member");
$stmt->execute();
$result = $stmt->fetchAll();
foreach($result as $k) { ?>
      <tr>
      <td><?= $k['id'];?></td>
      <td><?= $k['name'];?></td>
      <td><?= $k['surname'];?></td>
      <td><a href="?act=edit&id=<?= $k['id'];?>" class="btn btn-warning btn-sm">แก้ไข</a></td>
      <td><a href="?act=del&id=<?= $k['id'];?>" class="btn btn-danger btn-sm" 
      onclick="return confirm('ยืนยันการลบข้อมูล !!');">ลบ</a></td>
      </tr>
<?php } ?>
      </tbody>
      </table>
    </div>
  </div>
</div>
<center>Basic CRUD PHP PDO by devbanban.com 2021</center>
</body></html>