สวัสดีครับ ในบทความนี้จะแจกตัวอย่าง PHP PDO : Delete Multiple Rows , ลบข้อมูลทีละหลายรายการ โดยใช้ Checkbox ให้เลือกข้อมูลที่ต้องการลบ โดยเลือกลบได้มากกว่า 1 รายการ ตัว code จะรองรับ PHP7 & PHP8 ฝึกไว้ครับเผื่อได้ใช้
ขอแนะนำระบบพร้อมใช้ ราคาถูก ได้ Code + Database ทั้งหมด
1.เว็บอีคอมเมิร์ช คลิก
2.เว็บ FOOD POS ขายอาหารหน้าร้าน คลิก
3.เว็บ Coffee POS ขายกาแฟหน้าร้าน คลิก
4.หลังบ้านระบบอีคอมเมิร์ช คลิก
5.เว็บบริษัท / เว็บองค์กร คลิก
6.ระบบหอพัก โปรแกรมหอพัก คลิก
7.ระบบยืมคืน เบิกจ่ายพัสดุ ครุภัณฑ์ คลิก
8.ระบบแจ้งซ่อมสำหรับองค์กร คลิก
9.ระบบอื่นๆ เพิ่มเติม คลิก
รวมคลิปสอนปรับพื้นฐาน ภาษา php ฟรี 100 คลิป ++ https://devbanban.com/?p=3940
โค้ดประกอบด้วย
- PHP PDO
- MySQL SQL DELETE, WHERE IN
- HTML ,form checkbox, table
มาเริ่มทำ workshop กันครับ *คอมเม้นอยู่ในโค้ด
0.รวม Workshop PHP PDO ก่อนหน้าคลิก
1.ตารางตัวอย่าง tbl_delmulti ให้สร้างฐานข้อมูลก่อนครับ เช่น ฐานข้อมูลชื่อ workshop_pdo จากนั้นคัดลอกโค้ดด้านล่างและไปที่เมนู sql คัดลอกโค้ดไปวางและ go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
CREATE TABLE `tbl_delmulti` ( `id` int(10) NOT NULL, `petname` varchar(100) NOT NULL, `sex` varchar(10) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `tbl_delmulti` (`id`, `petname`, `sex`) VALUES (1, 'น้องหมา', 'เพศผู้'), (2, 'น้องแมว', 'เพศเมีย'), (3, 'น้องลิง', 'เพศผู้'), (4, 'น้องไก่', 'เพศเมีย'); -- ALTER TABLE `tbl_delmulti` ADD PRIMARY KEY (`id`); ALTER TABLE `tbl_delmulti` MODIFY `id` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; |
2.สร้างโฟลเดอร์สำหรับทดสอบ เช่น ชื่อโฟลเดอร์ workshop_pdo *สำหรับคนที่เพิ่งฝึกยังไม่เข้าใจข้อนี้ว่าต้องสร้างไว้ที่ไหน ให้ดูคลิปชุดนี้ก่อน รวมคลิปสอนปรับพื้นฐาน ภาษา php ฟรี 100 คลิป ++ https://devbanban.com/?p=3940
3.ไฟล์เชื่อมต่อฐานข้อมูล ชื่อไฟล์ connect.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php $servername = "localhost"; $username = "root"; $password = "password"; try { $conn = new PDO("mysql:host=$servername;dbname=workshop_pdo;charset=utf8", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //echo "Connected successfully"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } //Set ว/ด/ป เวลา ให้เป็นของประเทศไทย date_default_timezone_set('Asia/Bangkok'); ?> |
4. ไฟล์ workshop delete_multiple.php *มีคอมเม้นเพิ่มเติมในโค้ด ไล่ Code ด้วยนะครับ มี exit(); ไว้เพื่อให้เข้าใจโค้ดแต่ละส่วน
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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>delete multiple rows by devbanban.com 2022</title> </head> <body> <meta charset=utf-8> <?php //ไฟล์เชื่อมต่อฐานข้อมูล require_once 'connect.php'; //query data $stmt = $conn->prepare("SELECT * FROM tbl_delmulti"); $stmt->execute(); $result = $stmt->fetchAll(); //แสดงข้อมูลทั้งหมด ?> <table width="400" border="0" cellspacing="1" cellpadding="0"> <tr> <td> <h4>PHP PDO : Delete Multiple Rows</h4> <form method="post"> <table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC"> <tr> <td bgcolor="#FFFFFF"> </td> <td colspan="4" bgcolor="#FFFFFF"><strong>ลบครั้งละหลายเรคคอด</strong> </td> </tr> <tr> <td align="center" bgcolor="#FFFFFF">เลือกข้อมูลที่ต้องการลบ</td> <td align="center" bgcolor="#FFFFFF"><strong>id</td> <td align="center" bgcolor="#FFFFFF"><strong>ชื่อ</strong></td> <td align="center" bgcolor="#FFFFFF"><strong>เพศ</strong></td> </tr> <?php foreach ($result as $rows){ ?> <tr> <td align="center" bgcolor="#FFFFFF"> <!-- ส่ง checkbox เป็น array --> <input name="del[]" type="checkbox" value="<?php echo $rows["id"]; ?>"></td> <td bgcolor="#FFFFFF"><?php echo $rows["id"]; ?></td> <td bgcolor="#FFFFFF"><?php echo $rows["petname"]; ?></td> <td bgcolor="#FFFFFF"><?php echo $rows["sex"]; ?></td> </tr> <?php } ?> <tr> <td colspan="5" bgcolor="#FFFFFF" align="center"> <input type="submit" value="ลบข้อมูล"></td> </tr> </table> </form> </body> </html> <?php echo '<pre>'; print_r($_POST); echo '</pre>'; exit(); if (isset($_POST['del'])) { //ไฟล์เชื่อมต่อฐานข้อมูล require_once 'connect.php'; //implode cut last comma $checked = implode(" , ", $_POST['del']); echo 'แสดงไอดีที่ส่งมาลบ ' .$checked; exit(); //sql delete where in $stmt = $conn->prepare("DELETE FROM tbl_delmulti WHERE id IN ($checked) "); $stmt->execute(); echo '<br> จำนวนนข้อมูลที่ลบ '.$stmt->rowCount() .' รายการ'; } ?> |
5.ผลการทำงาน
ลองเอาไปประยุกต์ใช้ดูครับ และฝากติดตาม workshop ต่อๆ ไปด้วยครับผม
Bootstrap5 : https://getbootstrap.com/
ฝึก SQL : https://www.w3schools.com/sql/default.asp
แหล่งศึกษา PDO เพิ่มเติม : https://websitebeaver.com/php-pdo-vs-mysqli
List of PDOStatement::bindParam data_type parameters : https://www.php.net/manual/en/pdo.constants.php
ร่วมสนับสนุน ค่ากาแฟ ค่าโฮส devbanban.com ได้ที่
ธนาคารกรุงไทย สาขาเดอะมอลล์ท่าพระ
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 878-0-17747-6
————————————————————————————
ธนาคารไทยพาณิชย์ สาขามหาวิทยาลัยราชภัฏธนบุรี
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 406-359094-1
fanpage : https://www.facebook.com/sornwebsites/