สวัสดีครับ ในบทความนี้จะแจกการทำงานของ PHP PDO : Multiple Insert Rows เพิ่มข้อมูลมากกว่า 1 รายการโดยใช้ Checkbox เป็น workshop ให้เลือกภาษาโปรแกรมมิ่งที่ชอบแบบง่ายๆ โดยเลือกได้มากกว่า 1 รายการ ตัว code จะรองรับ PHP7 & PHP8 ฝึกไว้ครับเผื่อได้ใช้
ขายโปรแกรม ลดสูงสุด 70%
ขายระบบสารสนเทศออนไลน์ พร้อมใช้ ราคาเบาๆ ได้โค้ดทั้งหมด นำไปต่อยอดได้
สินค้าทั้งหมด คลิก https://devbanban.com/?p=4425
ซื้อแล้วปรึกษาได้เรื่อยๆ ครับ
สนใจ inbox มาที่แฟนเพจ หรือ ☎️ 0948616709
ขอแนะนำระบบพร้อมใช้ ราคาถูก ได้ 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 Insert
- HTML ,form checkbox
- Bootstrap5 Class : col, form, btn
- Sweet Alert
มาเริ่มทำ workshop กันครับ *คอมเม้นอยู่ในโค้ด
0.รวม Workshop PHP PDO ก่อนหน้าคลิก
1.ตารางตัวอย่าง ตารางเก็บข้อมูลภาษาโปรแกรมมิ่งที่ชอบ tbl_lang_favor ให้สร้างฐานข้อมูลก่อนครับ เช่น ฐานข้อมูลชื่อ workshop_pdo จากนั้นคัดลอกโค้ดด้านล่างและไปที่เมนู sql คัดลอกโค้ดไปวางและ go
1 2 3 4 5 6 7 8 9 10 11 |
CREATE TABLE `tbl_lang_favor` ( `no` int(11) NOT NULL, `Lang_favor` varchar(50) NOT NULL COMMENT 'ชื่อภาษาที่ชอบ', `dateCreate` timestamp NOT NULL DEFAULT current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ALTER TABLE `tbl_lang_favor` ADD PRIMARY KEY (`no`); ALTER TABLE `tbl_lang_favor` MODIFY `no` int(11) NOT NULL AUTO_INCREMENT; |
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 formAddByCheckbox.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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
<!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"> <!-- sweet alert --> <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"> <title>PHP PDO Basic Mutitple Insert Using Checkbox by devbanban.com 2021</title> </head> <body> <div class="container"> <div class="row"> <div class="col-sm-1"></div> <div class="col-sm-11"> <br> <h4> PHP PDO : Multiple Insert Rows โดยใช้ Checkbox </h4> <b>*เลือกภาษาที่คุณชื่นชอบ (เลือกได้มากกว่า 1 รายการ)</b> <form action="" method="post"> <div class="row g-3 align-items-center mb-3"> <div class="col-sm-5" style="margin-left: 30px;"> <input type="checkbox" name="programmingLan[]" value="PHP"> <label class="col-form-label">PHP</label> <br> <input type="checkbox" name="programmingLan[]" value="SQL"> <label class="col-form-label">SQL</label> <br> <input type="checkbox" name="programmingLan[]" value="JAVASCRIPT"> <label class="col-form-label">JAVASCRIPT</label> <br> <input type="checkbox" name="programmingLan[]" value="PYTHON"> <label class="col-form-label">PYTHON</label> <br> <input type="checkbox" name="programmingLan[]" value="C"> <label class="col-form-label">C</label> <br> <input type="checkbox" name="programmingLan[]" value="JAVA"> <label class="col-form-label">JAVA</label> <br> <input type="checkbox" name="programmingLan[]" value="HTML"> <label class="col-form-label">HTML</label> <br> </div> </div> <button type="submit" class="btn btn-success">บันทึกข้อมูล</button> </form> </div> </div> </div> </body> </html> <?php echo '<pre>'; print_r($_POST); //ตรวจสอบมี input อะไรบ้าง และส่งอะไรมาบ้าง echo '</pre>'; //exit(); //ถ้ามีค่าส่งมาจากฟอร์ม if(isset($_POST['programmingLan'])){ //แสดงจำนวนข้อมูลที่ส่งมาในรูปแบบอาร์เรย์ echo 'count array = '.count($_POST['programmingLan']); //exit(); //สร้างเงื่อนไขตรวจสอบถ้ามีการส่งข้อมูลมามากกว่า 1 รายการขึ้นไปถึงให้ทำงานได้ if (count($_POST['programmingLan']) < 1) { echo '<script> setTimeout(function() { swal({ title: "เลือกข้อมูลอย่างน้อย 1 รายการ", type: "error" }, function() { window.location = "formAddByCheckbox.php"; //หน้าที่ต้องการให้กระโดดไป }); }, 1000); </script>'; exit(); } //if (count($_POST['programmingLan']) > 0) { //exit(); //ไฟล์เชื่อมต่อฐานข้อมูล require_once 'connect.php'; //sql insert $stmt = $conn->prepare("INSERT INTO tbl_lang_favor (Lang_favor) VALUES (:Lang_favor)"); //แยก key & value ด้วย foreach foreach ($_POST['programmingLan'] as $Lang_favor) { //bindParam data type $stmt->bindParam(':Lang_favor', $Lang_favor, PDO::PARAM_STR); $result = $stmt->execute(); //Dumps the information contained by a prepared statement directly on the output แปลเป็นชาวบ้านๆ คือ แสดง sql statment echo '<br> debugDumpParams <br>'; echo '<hr>'; $stmt->debugDumpParams(); echo '</pre>'; } //foreach $conn = null; //close connect db exit(); if($result){ echo '<script> setTimeout(function() { swal({ title: "บันทึกข้อมูลสำเร็จ", type: "success" }, function() { window.location = "formAddByCheckbox.php"; //หน้าที่ต้องการให้กระโดดไป }); }, 1000); </script>'; }else{ echo '<script> setTimeout(function() { swal({ title: "เกิดข้อผิดพลาด", type: "error" }, function() { window.location = "formAddByCheckbox.php"; //หน้าที่ต้องการให้กระโดดไป }); }, 1000); </script>'; } //else result } //isset //devbanban.com ?> |
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/