สวัสดีครับ ในบทความนี้จะแจกตัวอย่าง PHP PDO ระบบเพิ่มข้อมูลนักศึกษาลง database เพื่อไว้เป็นตัวอย่าง พัฒนาต่อยอด และแนวทางในการพัฒนาระบบสารสนเทศใช้ในองค์กร ฝึกไว้ครับ เผื่อได้ใช้ รองรับ php7 – php8
ขายโปรแกรม ลดสูงสุด 70%
ขายระบบสารสนเทศออนไลน์ พร้อมใช้ ราคาเบาๆ ได้โค้ดทั้งหมด นำไปต่อยอดได้
สินค้าทั้งหมด คลิก https://devbanban.com/?p=4425
ซื้อแล้วปรึกษาได้เรื่อยๆ ครับ
สนใจ inbox มาที่แฟนเพจ หรือ ☎️ 0948616709
ขอแนะนำระบบพร้อมใช้ ราคาถูก ได้ Code + Database ทั้งหมด
1.เว็บอีคอมเมิร์ช คลิก
2.เว็บ FOOD POS ขายอาหารหน้าร้าน คลิก
3.เว็บ Coffee POS ขายกาแฟหน้าร้าน คลิก
4.เว็บบริษัท / เว็บองค์กร คลิก
5.ระบบหอพัก โปรแกรมหอพัก คลิก
6.ระบบยืมคืน เบิกจ่ายพัสดุ ครุภัณฑ์ คลิก
7.ระบบแจ้งซ่อมสำหรับองค์กร คลิก
8.ระบบฐานข้อมูลวิจัย คลังข้อมูลวิจัย ฐานข้อมูลวิทยานิพนธ์ Research Corpus คลิก
9.ระบบสอบออนไลน์ คลิก
10.ระบบอื่นๆ เพิ่มเติม คลิก
*ขอแนะนำระบบสอบออนไลน์ รายละเอียดเพิ่มเติมใต้คลิป
รวมคลิปสอนปรับพื้นฐาน ภาษา php ฟรี 100 คลิป ++ https://devbanban.com/?p=3940
โค้ดประกอบด้วย
- PHP PDO
- MySQL SQL Query, INSERT
- HTML
- Bootstrap5 Class : col, form, btn, table
- Sweet Alert
มาเริ่มทำ workshop กันครับ *คอมเม้นอยู่ในโค้ด
0.รวม Workshop PHP PDO ก่อนหน้าคลิก
1.ตารางข้อมูลตัวอย่างจะชื่อ tbl_std ให้สร้างฐานข้อมูลก่อนครับ เช่น ฐานข้อมูลชื่อ workshop_pdo จากนั้นไปที่เมนู sql คัดลอกโค้ดไปวางและ go
1 2 3 4 5 6 7 8 9 10 11 12 |
CREATE TABLE `tbl_std` ( `std_code` varchar(20) NOT NULL, `std_program` varchar(100) NOT NULL, `std_firstname` varchar(50) NOT NULL, `std_name` varchar(100) NOT NULL, `std_lastname` varchar(100) NOT NULL, `std_phone` varchar(10) NOT NULL, `std_email` varchar(50) NOT NULL, `dateCreate` timestamp NOT NULL DEFAULT current_timestamp() ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ALTER TABLE `tbl_std` ADD PRIMARY KEY (`std_code`); |
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 ตั้งชื่อ formAddSTD.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 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 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
<!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>PHP PDO Form add Student by devbanban.com 2022</title> <!-- 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"> </head> <body> <div class="container"> <div class="row"> <div class="col-md-12"> <br> <h4>ระบบเพิ่มข้อมูลนักศึกษา <hr></h4> <?php //ถ้ามีการส่งพารามิเตอร์ method get และ method get ชือ act = add จะแสดงฟอร์มเพิ่มข้อมูล if(isset($_GET['act']) && $_GET['act']=='add'){ ?> <h3>PHP PDO ฟอร์มเพิ่มข้อมูลนักศึกษา </h3> <form method="post"> <div class="row mb-3"> <div class="col"> เลือกโปรแกรมวิชา <select name="std_program" class="form-control" required> <option value="">-เลือกโปรแกรมวิชา-</option> <option value="เทคโนโลยีสารสนเทศ">เทคโนโลยีสารสนเทศ</option> <option value="วิทยาการคอมพิวเตอร์">วิทยาการคอมพิวเตอร์</option> <option value="วิศวกรรมซอฟแวร์">วิศวกรรมซอฟแวร์</option> </select> </div> <div class="col"> รหัสนักศึกษา <input type="text" name="std_code" class="form-control" placeholder="ขั้นต่ำ 5 ตัว" required minlength="5" maxlength="20"> </div> </div> <div class="row mb-3"> <div class="col col-sm-2"> คำนำหน้าชื่อ <select name="std_firstname" class="form-control" required> <option value="">-คำนำหน้าชื่อ-</option> <option value="นาย">นาย</option> <option value="นางสาว">นางสาว</option> </select> </div> <div class="col col-sm-4"> ชื่อ <input type="text" name="std_name" class="form-control" placeholder="ชื่อ" required> </div> <div class="col col-sm-6"> นามสกุล <input type="text" name="std_lastname" class="form-control" placeholder="นามสกุล" required> </div> </div> <div class="row mb-3"> <div class="col"> เบอร์โทร <input type="tel" name="std_phone" class="form-control" placeholder="เบอร์โทร" required minlength="10" maxlength="10"> </div> <div class="col"> อีเมล <input type="email" name="std_email" class="form-control" placeholder="อีเมล" required> </div> </div> <div class="d-grid gap-2 col-12 mx-auto"> <button class="btn btn-primary" type="submit">บันทึก</button> </div> </form> <?php } ?> <br> <h5>ข้อมูลนักศึกษา <a href="formAddSTD.php?act=add" class="btn btn-success btn-sm">+เพิ่มข้อมูล</a> </h5> <div class="table-responsive"> <table class="table table-striped table-hover table-responsive table-bordered"> <thead> <tr class="table-danger"> <th width="20%">รหัสนักศึกษา</th> <th width="20%">ชื่อ-สกุล</th> <th width="20%">โปรแกรม</th> <th width="20%">เบอร์โทร</th> <th width="20%">อีเมล</th> </tr> </thead> <tbody> <?php //เรียกไฟล์เชื่อมต่อฐานข้อมูล require_once 'connect.php'; //คิวรี่ข้อมูลมาแสดงในตาราง $stmt = $conn->prepare("SELECT* FROM tbl_std ORDER BY std_code DESC"); $stmt->execute(); $result = $stmt->fetchAll(); foreach($result as $row) { ?> <tr> <td><?= $row['std_code'];?></td> <td><?= $row['std_firstname'].$row['std_name'].' '.$row['std_lastname'];?></td> <td><?= $row['std_program'];?></td> <td><?= $row['std_phone'];?></td> <td><?= $row['std_email'];?></td> <?php } ?> </tr> </tbody> </table> </div> <br> <center>Basic PHP PDO Form add Student by devbanban.com 2022</center> </div> </div> </div> </body> </html> <?php // echo '<pre>'; // print_r($_POST); // echo '</pre>'; // exit(); //ตรวจสอบตัวแปรที่ส่งมาจากฟอร์ม if (isset($_POST['std_code']) && isset($_POST['std_program']) && isset($_POST['std_phone'])) { //ไฟล์เชื่อมต่อฐานข้อมูล require_once 'connect.php'; //sql insert $stmt = $conn->prepare("INSERT INTO tbl_std ( std_code, std_program, std_firstname, std_name, std_lastname, std_phone, std_email ) VALUES ( :std_code, :std_program, :std_firstname, :std_name, :std_lastname, :std_phone, :std_email ) "); //bindParam data type $stmt->bindParam(':std_code', $_POST['std_code'], PDO::PARAM_STR); $stmt->bindParam(':std_program', $_POST['std_program'], PDO::PARAM_STR); $stmt->bindParam(':std_firstname', $_POST['std_firstname'], PDO::PARAM_STR); $stmt->bindParam(':std_name', $_POST['std_name'], PDO::PARAM_STR); $stmt->bindParam(':std_lastname', $_POST['std_lastname'], PDO::PARAM_STR); $stmt->bindParam(':std_phone', $_POST['std_phone'], PDO::PARAM_STR); $stmt->bindParam(':std_email', $_POST['std_email'], PDO::PARAM_STR); $result = $stmt->execute(); $conn = null; //close connect db //เงื่อนไขตรวจสอบการเพิ่มข้อมูล if($result){ echo '<script> setTimeout(function() { swal({ title: "เพิ่มข้อมูลสำเร็จ", type: "success" }, function() { window.location = "formAddSTD.php"; //หน้าที่ต้องการให้กระโดดไป }); }, 1000); </script>'; }else{ echo '<script> setTimeout(function() { swal({ title: "เกิดข้อผิดพลาด", type: "error" }, function() { window.location = "formAddSTD.php"; //หน้าที่ต้องการให้กระโดดไป }); }, 1000); </script>'; } //else ของ if result } //isset //ตัวอย่าง workshop ป้องกันบันทึกข้อมูลซ้ำ https://devbanban.com/?p=4221 //ขอแนะนำระบบพร้อมใช้ ราคาเบาๆ ซื้อแล้วได้ code ทั้งหมด เอาไปต่อยอดได้ //ระบบแจ้งซ่อม https://www.youtube.com/watch?v=bkYBKfFauB8 //ระบบจัดการหอพัก https://www.youtube.com/watch?v=O7Bh0BNCDz8 //ระบบสอบออนไลน์ https://www.youtube.com/watch?v=WOTLFEflkMk&t=125s ?> |
5.ผลการทำงาน
6.การนำไปต่อยอด ป้องกันบันทึกข้อมูลซ้ำ https://devbanban.com/?p=4221 *ในเคสนี้จะป้องกันการเพิ่มรหัสนักศึกษาซ้ำ
ลองเอาไปประยุกต์ใช้ดูครับ และฝากติดตาม 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/