แจกตัวอย่างโปรแกรม เพิ่ม ลบ แก้ไข แสดงข้อมูล ด้วยภาษา PHP MySQLi Object-oriented และตกแต่งโดยใช้ Bootstrap4 class ยอดนิยม เช่น table, btn, form เป็นต้น
การทำงานก็ง่ายๆครับ เพราะเป็นแบบพื้นฐานการเขียน PHP MySQLi Object-oriented ซึ่งจะมีการใช้ prepare และ bind_param เพื่อป้องกัน SQL Injection ( SQL Injection คืออะไรคลิก)
มาเริ่มกันเลยครับ
ฐานข้อมูล มีให้ 1 ตาราง คือ tbl_member ไว้เก็บข้อมูลสมาชิกแบบง่ายๆ *ก่อนอื่นต้องสร้างชื่อฐานข้อมูลใน phpmyadmin ก่อนนะครับ เช่น workshop_php_oop แล้วค่อยคัดลอกโค้ดสร้างตารางไปวางใน SQL
*ส่วนมือใหม่แนะนำดูคลิปชุดน้ีก่อนครับ *รวมคลิปปรับพื้นฐาน PHPMyadmin + Basic PHP คลิก
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
CREATE TABLE `tbl_member` ( `id` int(11) NOT NULL, `name` varchar(100) NOT NULL, `email` varchar(50) NOT NULL, `phone` varchar(20) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Dumping data for table `tbl_member` -- INSERT INTO `tbl_member` (`id`, `name`, `email`, `phone`) VALUES (1, 'นายสมชาย ใจดี', 'sssm@ss.com', '099999999'), (2, 'นายสมปอง ใจดี', 'sssmpp@ss.com', '099999991'), (3, 'นายสมพร ใจดี', 'sssmpporn@ss.com', '099999992'), (4, 'นายสุดยอด ใจดี', 'sssmy@ss.com', '099999993'), (5, 'นายสุดใจ ใจดี', 'sssmj@ss.com', '099999994'); -- -- Indexes for dumped tables -- -- -- Indexes for table `tbl_member` -- ALTER TABLE `tbl_member` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `tbl_member` -- ALTER TABLE `tbl_member` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; COMMIT; |
ไฟล์เชื่อมต่อฐานข้อมูล condb.php *ในส่วนนี้ก็ตั้งค่าการเชื่อมต่อฐานข้อมูลให้ถูกต้องครับ เช็ค username, password, database name ให้ถูกต้อง
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $servername = "localhost"; //host $username = "root"; //username $password = "your_password"; //password $dbname = "workshop_php_oop"; //database name // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } //echo "Connected successfully"; ?> |
หน้าหลัก/ไฟล์แสดงข้อมูล index.php *ในไฟล์หลักหรือหน้าหลักของโปรแกรม จะมีการคิวรี่ข้อมูลจากตารางมาแสดงในรูปแบบตาราง โดยใช้ Bootstrap4 มาช่วยตกแต่งให้สวยงาม และยังมีลิงค์เชื่อมโยงไปยังไฟล์ต่างๆ เช่น ฟอร์มเพิ่มข้อมูล ฟอร์มแก้ไขข้อมูล และไฟล์ลบข้อมูล
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title></title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous"> </head> <body> <div class="container" style="margin-top: 50px;"> <?php include 'condb.php'; $sql = "SELECT * FROM tbl_member"; $result = $conn->query($sql); echo '<h3> Basic CRUD PHP OOP <a href="formadd.php" class="btn btn-primary"> + data </a> </h3>'; echo ' <table class="table table-hover"> <thead> <tr class="table-primary"> <th>id</th> <th>name</th> <th>email</th> <th>phone</th> <th>edit</th> <th>del</th> </tr> </thead> '; echo '<tbody>'; foreach ($result as $k) { echo '<tr>'; echo "<td>".$k['id']."</td>"; echo "<td>".$k['name']."</td>"; echo "<td>".$k['email']."</td>"; echo "<td>".$k['phone']."</td>"; echo "<td>" ."<a href='formedit.php?id=".$k['id']."' class='btn btn-warning btn-sm'>" ."edit</a></td>"; echo "<td>" ."<a href='del.php?id=".$k['id']."' class='btn btn-danger btn-sm' onclick=\"return confirm('Do you want to delete this record? !!!')\">" ."del</a></td>"; echo '</tr>'; } echo '</tbody>'; ?> </div> </body> </html> |
ผลการทำงาน
ฟอร์มเพิ่มข้อมูล formadd.php *ฟอร์มเพิ่มข้อมูลจะใช้ Bootstrap4 มาช่วยตกแต่งให้สวยงามเช่นเดิม
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous"> <div class="container"> <div class="row"> <div class="col-sm-5"> <br> <h3>Form Add Data</h3> <form action="save.php" method="post"> <div class="form-group"> name : <input type="text" name="name" required class="form-control" placeholder="name"> </div> <div class="form-group"> email : <input type="email" name="email" required class="form-control" placeholder="email"> </div> <div class="form-group"> phone : <input type="tel" name="phone" required class="form-control" placeholder="phone"> </div> <div class="form-group"> <button type="submit" class="btn btn-primary">save</button> </div> </form> </div> </div> </div> |
ผลการทำงาน
สคริปต์รับค่าจากฟอร์มเพิ่มข้อมูลเพื่อเก็บลงตาราง save.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php include 'condb.php'; // prepare and bind $stmt = $conn->prepare("INSERT INTO tbl_member (name, email, phone) VALUES (?, ?, ?)"); $stmt->bind_param("sss", $name, $email, $phone); /* The argument may be one of four types: i - integer d - double s - string b - BLOB */ $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $stmt->execute(); if($stmt->error){ echo $stmt->error; }else{ echo "New record created successfully <a href='index.php'> home </a>"; } $stmt->close(); $conn->close(); ?> |
ฟอร์มแก้ไขข้อมูล formedit.php *ตกแต่งด้วย Bootstrap4 และในฟอร์มแก้ไขจะมีการคิวรี่ข้อมูลที่ต้องการแก้ไขมาแสดงด้วยครับ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<?php include 'condb.php'; if(isset($_GET['id'])){ $id = $_GET['id']; $sql = "SELECT * FROM tbl_member WHERE id=$id"; $result = $conn->query($sql); $row = mysqli_fetch_array($result); $num = $result->num_rows; //echo $num; //print_r($row); ?> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous"> <div class="container"> <div class="row"> <div class="col-sm-5"> <br> <h3>Form Update Data</h3> <form action="saveedit.php" method="post"> <div class="form-group"> id : <input type="number" name="id" readonly value="<?php echo $row['id'];?>" class="form-control"> </div> <div class="form-group"> name : <input type="text" name="name" required value="<?php echo $row['name'];?>" class="form-control" placeholder="name"> </div> <div class="form-group"> email : <input type="email" name="email" required value="<?php echo $row['email'];?>" class="form-control" placeholder="email"> </div> <div class="form-group"> phone : <input type="tel" name="phone" required value="<?php echo $row['phone'];?>" class="form-control" placeholder="phone"> </div> <div class="form-group"> <button type="submit" class="btn btn-success">save</button> </div> </form> </div> </div> </div> <?php }else{ echo 'Error!'; } ?> |
ผลการทำงาน
สคริปต์รับค่าจากฟอร์มแก้ไขข้อมูลเพื่อปรับปรุงข้อมูลและบันทึกลงในตาราง saveedit.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<?php include 'condb.php'; if(isset($_POST['id'])){ $id = $_POST['id']; // prepare and bind $stmt = $conn->prepare(" UPDATE tbl_member SET name=?, email=?, phone=? WHERE id=$id "); $stmt->bind_param("sss", $name, $email, $phone); /* The argument may be one of four types: i - integer d - double s - string b - BLOB */ $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $stmt->execute(); if($stmt->error){ echo $stmt->error; }else{ echo "update successfully <a href='index.php'> home </a> "; } $stmt->close(); $conn->close(); } ?> |
สคริปต์ลบข้อมูลในตาราง del.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<?php include 'condb.php'; // prepare and bind $stmt = $conn->prepare("DELETE FROM tbl_member WHERE id=?"); $stmt->bind_param("i", $id); /* The argument may be one of four types: i - integer d - double s - string b - BLOB */ $id = $_GET['id']; $stmt->execute(); if($stmt->error){ echo $stmt->error; }else{ echo "del successfully <a href='index.php'> home </a> "; } $stmt->close(); $conn->close(); ?> |
หมดแล้วครับ มีทั้งหมด 7 ไฟล์ด้วยกัน ก็จะสามารถทำระบบ เพิ่ม ลบ แก้ไข แสดงข้อมูลแบบง่ายๆได้แล้วครับ
ลองเล่นดูครับ เทคนิคอื่นๆ เพิ่มเติมคลิก
รายการระบบพร้อมใช้ ราคาถูก ได้โค้ดทั้งหมด
แฟนเพจ : https://www.facebook.com/sornwebsites/
ร่วมสนับสนุน ค่ากาแฟ ค่าโฮส devbanban.com และทีมงานได้ที่
ธนาคารกรุงไทย สาขาเดอะมอลล์ท่าพระ
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 878-0-17747-6
————————————————————————————
ธนาคารไทยพาณิชย์ สาขามหาวิทยาลัยราชภัฏธนบุรี
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 406-359094-1
————————————————————————————
ธนาคารกสิกร สาขาเออร์เบิร์น สแควร์ ประชาชื่น
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 048-1-17571-2