PHP+Mysqli : ลบข้อมูลทีละหลายเรคคอร์ด, multiple delete data using checkbox . หลักการทำงานคร่าวๆ คือการส่งค่าจากฟอร์มมาเป็น Array และทำการตรวจสอบข้อมูลที่มีการส่งมาทั้งหมดและทำการลบข้อมูลนั้นๆ ออกจากฐานข้อมูล
1.ตัวอย่างตารางที่นำมา workshop
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
CREATE TABLE `tbl_delmulti` ( `id` int(10) NOT NULL auto_increment, `petname` varchar(100) NOT NULL, `sex` varchar(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; -- -- Dumping data for table `tbl_delmulti` -- INSERT INTO `tbl_delmulti` VALUES (1, 'น้องหมา', 'เพศผู้'); INSERT INTO `tbl_delmulti` VALUES (2, 'น้องแมว', 'เพศเมีย'); INSERT INTO `tbl_delmulti` VALUES (3, 'น้องลิง', 'เพศผู้'); INSERT INTO `tbl_delmulti` VALUES (4, 'น้องไก่', 'เพศเมีย'); |
2.ไฟล์เชื่อมต่อกับฐานข้อมูล conn.php
1 2 3 4 |
<?php $conn = mysqli_connect("localhost", "root", "123", "dbdog") or die("Error Conn" .mysqli_error($conn)); mysqli_query($conn,"SET NAMES 'UTF8' "); ?> |
3.ไฟล์เรียกข้อมูลมาแสดงและฟอร์มส่งข้อมูลไปลบ index.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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
<meta charset=utf-8> <?php // เชื่อมต่อฐานข้อมูล include("conn.php"); //เรียกข้อมูลจากตารางมาแสดง $sql = "select * from tbl_delmulti"; $result=mysqli_query($conn, $sql); ?> <table width="400" border="0" cellspacing="1" cellpadding="0"> <tr> <td> <form name="form1" method="post" action="del.php"> <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 while($rows=mysqli_fetch_array($result)){ ?> <tr> <td align="center" bgcolor="#FFFFFF"> <!-- ส่ง checkbox เป็น array --> <input name="checkbox[]" type="checkbox" value="<? echo $rows["id"]; ?>"></td> <td bgcolor="#FFFFFF"><? echo $rows["id"]; ?></td> <td bgcolor="#FFFFFF"><? echo $rows["petname"]; ?></td> <td bgcolor="#FFFFFF"><? echo $rows["sex"]; ?></td> </tr> <?php } ?> <tr> <td colspan="5" bgcolor="#FFFFFF" align="center"> <input type="submit" value=" - ลบข้อมูล "></td> </tr> </table> </form> |
4. ไฟล์รับค่าข้อมูลไปลบ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<meta charset=utf-8> <?php include("conn.php"); //รับค่า post จากฟอร์ม $checks = implode(" ', ' ", $_POST['checkbox']); $sql = "DELETE FROM tbl_delmulti WHERE id in ('$checks') "; $result = mysqli_query($conn, $sql) or die(mysqli_error()); mysqli_close($conn); if($result){ echo "<script type='text/javascript'> "; echo "alert('delete Successfully'); "; echo "window.location='index.php'; "; echo "</script>"; } else { echo "<script type='text/javascript'> "; echo "alert('delete ERROR!!! '); "; echo "window.location='index.php'; "; echo "</script>"; } ?> |
ผลการทำงาน
หน้าแสดงข้อมูล เมื่อต้องการลบข้อมูลไหนออกจากฐานข้อมูลก็เพียงแคลิกถูกที่ข้อมูลนั้นและคลิกปุ่ม -ลบข้อมูล
ตะกร้าสินค้า v1 v2 V3
V1 = 1500 บาท, V2=2,500 บาท, V3=3,500 บาท
ระบบยืม-คืน เบิก-จ่ายพัสดุอุปกรณ์สำนักงาน 5,000 บาท
ระบบแจ้งซ่อมออนไลน์ 1,000 บาท
ร่วมสนับสนุน ค่ากาแฟ ค่าโฮส devbanban.com และทีมงานได้ที่
ธนาคารกรุงไทย สาขาเดอะมอลล์ท่าพระ
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 878-0-17747-6
————————————————————————————
ธนาคารไทยพาณิชย์ สาขามหาวิทยาลัยราชภัฏธนบุรี
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 406-359094-1
fanpage : https://www.facebook.com/sornwebsites/