สวัสดีครับ ในบทความนี้จะแจกตัวอย่างโปรแกรมแสดงโต๊ะ เลือกโต๊ะ และจองโต๊ะอย่างง่าย เขียนในรูปแบบ PHP MySQLi Procedural สำหรับเอาไปประยุกต์ใช้ในการทำระบบเกี่ยวกับร้านอาหาร ตัวโค้ดจะรองรับ PHP7 ฝึกไว้ครับ เผื่อได้ใช้
ขอแนะนำระบบพร้อมใช้ ราคาถูก ได้ Code + Database ทั้งหมด
1.เว็บอีคอมเมิร์ช คลิก
2.เว็บ FOOD POS ขายอาหารหน้าร้าน คลิก
3.เว็บ Coffee POS ขายกาแฟหน้าร้าน คลิก
4.หลังบ้านระบบอีคอมเมิร์ช คลิก
5.เว็บบริษัท / เว็บองค์กร คลิก
6.ระบบหอพัก โปรแกรมหอพัก คลิก
7.ระบบยืมคืน เบิกจ่ายพัสดุ ครุภัณฑ์ คลิก
8.ระบบแจ้งซ่อมสำหรับองค์กร คลิก
9.ระบบกระเป๋าตังค์ คลิก
10.ระบบฐานข้อมูลวิจัย คลังข้อมูลวิจัย ฐานข้อมูลวิทยานิพนธ์ Research Corpus คลิก
11.ระบบอื่นๆ เพิ่มเติม คลิก
รวมคลิปสอนปรับพื้นฐาน ภาษา php ฟรี 100 คลิป ++ https://devbanban.com/?p=3940
โค้ดประกอบด้วย
- PHP Procedural
- MySQL SQL Query, INSERT
- Bootstrap4 Class grid, btn, form
มาเริ่มทำ workshop กันครับ *คอมเม้นอยู่ในโค้ด
0.รวม Workshop PHP PDO ก่อนหน้าคลิก
1.ตารางตัวอย่างมี 2 ตาราง ให้สร้างฐานข้อมูลชื่อ workshop_booking_table และให้คัดลอกโค้ดด้านล่างและไปที่เมนู sql จากนั้นวางและ go ก็จะได้ตารางพร้อมข้อมูลตัวอย่างแล้วครับ
tbl_booking สำหรับเก็บข้อมูลการเลือกโต๊ะ และ tbl_table เป็นตารางเก็บข้อมูลโต๊ะ
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 |
CREATE TABLE `tbl_booking` ( `no` int(11) NOT NULL, `table_id` int(11) NOT NULL, `booking_name` varchar(100) NOT NULL, `booking_date` date NOT NULL, `booking_time` time NOT NULL, `booking_phone` varchar(10) NOT NULL, `booking_staff` varchar(100) NOT NULL, `dateCreate` datetime NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `tbl_table` ( `id` int(11) NOT NULL, `table_name` varchar(50) NOT NULL, `table_status` int(1) NOT NULL COMMENT '0 =ว่าง , 1 = จอง' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `tbl_table` (`id`, `table_name`, `table_status`) VALUES (1, 'A01', 1), (2, 'A02', 0), (3, 'A03', 0), (4, 'A04', 0), (5, 'A05', 1), (6, 'B01', 0), (7, 'B02', 0), (8, 'B03', 0), (9, 'B04', 0), (10, 'B05', 0), (11, 'C01', 0), (12, 'C02', 0), (13, 'C03', 0), (14, 'C04', 0), (15, 'C05', 0), (16, 'D01', 0), (17, 'D02', 0), (18, 'D03', 0), (19, 'D04', 0), (20, 'D05', 0); ALTER TABLE `tbl_booking` ADD PRIMARY KEY (`no`); ALTER TABLE `tbl_table` ADD PRIMARY KEY (`id`); ALTER TABLE `tbl_booking` MODIFY `no` int(11) NOT NULL AUTO_INCREMENT; ALTER TABLE `tbl_table` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21; |
2.สร้างโฟลเดอร์สำหรับทดสอบ เช่น ชื่อโฟลเดอร์ workshop_booking_table *สำหรับคนที่เพิ่งฝึกยังไม่เข้าใจข้อนี้ว่าต้องสร้างไว้ที่ไหน ให้ดูคลิปชุดนี้ก่อน รวมคลิปสอนปรับพื้นฐาน ภาษา php ฟรี 100 คลิป ++ https://devbanban.com/?p=3940
3.ไฟล์เชื่อมต่อฐานข้อมูล ชื่อไฟล์ condb.php
1 2 3 4 5 6 |
<?php //connect database $condb= mysqli_connect("localhost","root","password","workshop_booking_table") or die("Error: " . mysqli_error($condb)); mysqli_query($condb, "SET NAMES 'utf8' "); date_default_timezone_set('Asia/Bangkok'); ?> |
4.ไฟล์หน้าแรก 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 53 54 55 56 57 |
<?php //เรียกใช้งานไฟล์เชื่อมต่อฐานข้อมูล require_once 'condb.php'; //query $query = "SELECT * FROM tbl_table ORDER BY id ASC"; $result = mysqli_query($condb, $query); ?> <!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> <title>แสดงรายชื่อโต๊ะจากฐานข้อมูล PHP+MySQLi+Bootstrap4</title> <style type="text/css"> .devbanban{ background-color: #ffffff; } </style> </head> <body style="background-color: #330000;"> <div class="container"> <div class="row"> <div class="col-sm-2 col-md-2"></div> <div class="col-12 col-sm-11 col-md-7 devbanban" style="margin-top: 50px;"> <br> <h4 align="center" style="color: red;">แสดงรายชื่อโต๊ะจากฐานข้อมูล PHP+MySQLi+Bootstrap4</h4> <br> <div class="row"> <div class="col-sm-12 col-md-12"> <div class="alert alert-warning" role="alert"> <center>Tables</center> </div> <hr> <div class="row" style="margin-bottom: 20px;"> <?php foreach ($result as $row) { if($row['table_status']==0){ //ว่าง echo '<div class="col-2 col-md-2 col-sm-2" style="margin: 5px;">'; echo '<a href="booking.php?id='.$row["id"].'&act=booking"class="btn btn-success" target="_blank">'.$row['table_name'].'</a></div>'; }else{ //ถูกจอง echo '<div class="col-2 col-md-2 col-sm-2" style="margin: 5px;">'; echo '<a href="#" class="btn btn-secondary disabled" target="_blank">'.$row['table_name'].'</a></div>'; } } ?> </div> <p>*เขียว = ว่าง, เทา = ไม่ว่าง</p> </div> </div> </div> </div> </div> <hr> <center> <font color="white"> designed by devbanban.com สนับสนุนได้ที่ <a href="https://devbanban.com/?page_id=2309" target="_blank"> คลิก </a></font></center> </body> </html> |
5.ไฟล์ booking.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 |
<?php //เรียกใช้งานไฟล์เชื่อมต่อฐานข้อมูล require_once 'condb.php'; //query $query = "SELECT * FROM tbl_table WHERE id=$_GET[id]"; $result = mysqli_query($condb, $query); $row = mysqli_fetch_array($result); //print_r($row); ?> <!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> <title>แสดงข้อมูลโต๊ะเพื่อทำการจอง</title> <style type="text/css"> .devbanban{ background-color: #ffffff; } </style> </head> <body style="background-color: #330000;"> <div class="container"> <div class="row"> <div class="col-sm-2 col-md-2"></div> <div class="col-12 col-sm-11 col-md-7 devbanban" style="margin-top: 50px;"> <br> <h4 align="center" style="color: red;">แสดงรายชื่อโต๊ะจากฐานข้อมูล PHP+MySQLi+Bootstrap4</h4> <br> <div class="row"> <div class="col-sm-12 col-md-12"> <div class="alert alert-warning" role="alert"> <center><font color="red"> <b> บันทึกการเลือกโต๊ะ *ให้พนักงานเลือกให้ เลือกและจองวันต่อวัน </b></font> </center> </div> <hr> <div style="margin-left: 20px;"> <form action="save_booking.php" method="post"> <div class="form-group row"> <label class="col-sm-2 ">เลขโต๊ะ</label> <div class="col-sm-4"> <input type="text" name="table_name" class="form-control" disabled value="<?php echo $row['table_name'];?>"> </div> </div> <div class="form-group row"> <label class="col-sm-2 ">ผู้จอง</label> <div class="col-sm-7"> <input type="text" name="booking_name" class="form-control" required placeholder="ชื่อผู้จอง" minlength="5"> </div> </div> <div class="form-group row"> <label class="col-sm-2 ">วันที่</label> <div class="col-sm-5"> <input type="date" name="booking_date" class="form-control" required value="<?php echo date('Y-m-d');?>" min="<?php echo date('Y-m-d');?>" max="<?php echo date('Y-m-d');?>"> </div> <label class="col-sm-1 ">เวลา</label> <div class="col-sm-3"> <input type="time" name="booking_time" class="form-control" required placeholder="เวลา"> </div> </div> <div class="form-group row"> <label class="col-sm-2 ">เบอร์โทร</label> <div class="col-sm-7"> <input type="text" name="booking_phone" class="form-control" required placeholder="เบอร์โทร" minlength="10" maxlength="10"> </div> </div> <div class="form-group row"> <label class="col-sm-2 ">ผู้บันทึก</label> <div class="col-sm-3"> <input type="text" name="booking_staff" class="form-control" readonly value="พนง."> </div> </div> <div class="form-group row"> <label class="col-sm-2 "></label> <div class="col-sm-10"> <input type="hidden" name="table_id" value="<?php echo $_GET['id'];?>"> <button type="submit" class="btn btn-success">บันทึกการจอง</button> <br> ศึกษาการทำระบบ เพิ่ม ลบ แก้ไข แสดงข้อมูล เพิ่มเติมได้ที่ : <a href="https://www.youtube.com/playlist?list=PLEA4F1w-xYVadrcnedOqksEoOhh4gZfzO" target="_blank"> Click </a> </div> </div> </form> </div> </div> </div> </div> </div> </div> <hr> <center> <font color="white"> designed by devbanban.com สนับสนุนได้ที่ <a href="https://devbanban.com/?page_id=2309" target="_blank"> คลิก </a></font></center> </body> </html> |
6.ไฟล์ save_booking.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 |
<?php //เรียกใช้งานไฟล์เชื่อมต่อฐานข้อมูล require_once 'condb.php'; //print_r($_POST); if (isset($_POST['table_id']) && isset($_POST['booking_name']) && isset($_POST['booking_date'])) { //ประกาศตัวแปรรับค่าจากฟอร์ม $booking_name = $_POST['booking_name']; $booking_date = $_POST['booking_date']; $booking_time = $_POST['booking_time']; $booking_phone = $_POST['booking_phone']; $booking_staff = $_POST['booking_staff']; $table_id = $_POST['table_id']; $dateCreate = date('Y-m-d H:i:s'); //วันที่บันทึก //insert booking mysqli_query($condb, "BEGIN"); $sqlInsertBooking = "INSERT INTO tbl_booking values(null, '$table_id', '$booking_name', '$booking_date', '$booking_time', '$booking_phone', '$booking_staff', '$dateCreate')"; $rsInsertBooking = mysqli_query($condb, $sqlInsertBooking); //การใช้ Transection ประกอบด้วย BEGIN COMMIT ROLLBACK //update table status $sqlUpdate ="UPDATE tbl_table SET table_status=1 WHERE id = $table_id"; //1=จอง $rsUpdate = mysqli_query($condb, $sqlUpdate); if($rsInsertBooking && $rsUpdate){ //ตรรวจสอบถ้า 2 ตัวแปรทำงานได้ถูกต้องจะทำการบันทึก แต่ถ้าเกิดข้อผิดพลาดจะ Rollback คือไม่บันทึกข้อมูลใดๆ mysqli_query($condb, "COMMIT"); echo 'บันทึกข้อมูลการจองเรียบร้อยแล้ว <a href="index.php"> กลับหน้าหลัก </a>'; }else{ mysqli_query($condb, "ROLLBACK"); $msg = 'บันทึกข้อมูลไม่สำเร็จ กรุณาติดต่อเจ้าหน้าที่ค่ะ <a href="index.php"> กลับหน้าหลัก </a>'; } } //iset else{ header("Location: index.php"); } //ลองเอาไปประยุกต์ใช้ดูครับ devbanban.com ?> |
7.ผลการทำงาน
ลองเอาประยุกต์ใช้ดูนะครับ
รายการระบบพร้อมใช้ เอาไปทำเพิ่มได้ แก้ไขได้ ราคาไม่แพง *รายละเอียดเพิ่มเติมใต้คลิป
ร่วมสนับสนุน ค่ากาแฟ ค่าโฮส devbanban.com ได้ที่
ธนาคารกรุงไทย สาขาเดอะมอลล์ท่าพระ
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 878-0-17747-6
————————————————————————————
ธนาคารไทยพาณิชย์ สาขามหาวิทยาลัยราชภัฏธนบุรี
ชื่อบัญชี นายพิศิษฐ์ บวรเลิศสุธี เลขที่ 406-359094-1
fanpage : https://www.facebook.com/sornwebsites/