|
|
|
แจก ระบบการจอง Booking php กับ MySQL ค้นหาห้องว่าง และ ห้องที่ถูกจอง |
|
|
|
|
|
|
|
ในที่ีนี้ผมจะแจกเฉพาะในส่วนของ Code ให้เพื่อนๆ ได้ทดสอบและนำไปเป็นแนวทางในการค้นหาห้องว่าง และ ห้องที่ถูกจอง ซึ่งสามารถนำไปพัฒนาต่อในระบบอื่นๆ ได้
Code (ฐานข้อมูลนะครับ)
-- phpMyAdmin SQL Dump
-- version 2.10.3
-- http://www.phpmyadmin.net
--
-- โฮสต์: localhost
-- เวลาในการสร้าง: 27 ก.พ. 2013 น.
-- รุ่นของเซิร์ฟเวอร์: 5.0.51
-- รุ่นของ PHP: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- ฐานข้อมูล: `bookrent`
--
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `tblcalendarevent`
--
CREATE TABLE `tblcalendarevent` (
`Event_ID` tinyint(4) NOT NULL auto_increment,
`CE_StartDate` date NOT NULL,
`CE_EndDate` date NOT NULL,
`CE_Title` varchar(255) NOT NULL,
`CE_Descript` text NOT NULL,
`RoomID` int(11) NOT NULL,
`szState` int(11) NOT NULL,
PRIMARY KEY (`Event_ID`),
KEY `RoomID` (`RoomID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=52 ;
--
-- dump ตาราง `tblcalendarevent`
--
INSERT INTO `tblcalendarevent` VALUES (15, '2011-08-09', '2011-09-14', '210', 'Mr.O', 16, 0);
INSERT INTO `tblcalendarevent` VALUES (14, '2011-08-19', '2011-09-19', '5', 'Mr.N', 15, 0);
INSERT INTO `tblcalendarevent` VALUES (13, '2011-08-20', '2011-09-20', '3', 'Mr.M', 14, 0);
INSERT INTO `tblcalendarevent` VALUES (16, '2011-08-10', '2011-09-17', '73', 'Mr.S', 5, 0);
INSERT INTO `tblcalendarevent` VALUES (1, '2011-08-05', '2011-09-05', '210', 'Mr.A', 1, 0);
INSERT INTO `tblcalendarevent` VALUES (2, '2011-08-06', '2011-09-06', '210', 'Mr.B', 2, 0);
INSERT INTO `tblcalendarevent` VALUES (3, '2011-08-07', '2011-09-07', '210', 'Mr.C', 3, 0);
INSERT INTO `tblcalendarevent` VALUES (4, '2011-08-05', '2011-09-07', '3', 'Mr.D', 4, 0);
INSERT INTO `tblcalendarevent` VALUES (5, '2011-08-05', '2011-09-11', '117', 'Mr.E', 6, 0);
INSERT INTO `tblcalendarevent` VALUES (7, '2011-09-07', '2011-10-10', '211', 'Mr.F', 8, 0);
INSERT INTO `tblcalendarevent` VALUES (6, '2011-08-08', '2011-09-08', '162', 'Mr.G', 7, 0);
INSERT INTO `tblcalendarevent` VALUES (8, '2011-08-16', '2011-09-16', '3', 'Mr.H', 9, 0);
INSERT INTO `tblcalendarevent` VALUES (9, '2011-08-19', '2011-09-19', '207', 'Mr.I', 10, 0);
INSERT INTO `tblcalendarevent` VALUES (11, '2011-08-11', '2011-09-11', '210', 'Mr.J', 12, 0);
INSERT INTO `tblcalendarevent` VALUES (10, '2011-08-10', '2011-10-10', '208', 'Mr.K', 11, 0);
INSERT INTO `tblcalendarevent` VALUES (12, '2011-08-12', '2011-09-17', '3', 'Mr.L', 13, 0);
INSERT INTO `tblcalendarevent` VALUES (51, '2013-08-22', '2013-08-31', '1004', 'mr.prachaporn', 17, 0);
-- --------------------------------------------------------
--
-- โครงสร้างตาราง `tblrooms`
--
CREATE TABLE `tblrooms` (
`RoomID` int(11) NOT NULL default '0',
`RoomName` text,
`RoomType` int(11) default NULL,
PRIMARY KEY (`RoomID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- dump ตาราง `tblrooms`
--
INSERT INTO `tblrooms` VALUES (1, 'ห้อง 301', 1);
INSERT INTO `tblrooms` VALUES (2, 'ห้อง 302', 1);
INSERT INTO `tblrooms` VALUES (3, 'ห้อง 303', 1);
INSERT INTO `tblrooms` VALUES (4, 'ห้อง 304', 1);
INSERT INTO `tblrooms` VALUES (5, 'ห้อง 305', 1);
INSERT INTO `tblrooms` VALUES (6, 'ห้อง 306', 2);
INSERT INTO `tblrooms` VALUES (7, 'ห้อง 307', 2);
INSERT INTO `tblrooms` VALUES (8, 'ห้อง 308', 2);
INSERT INTO `tblrooms` VALUES (9, 'ห้อง 309', 2);
INSERT INTO `tblrooms` VALUES (10, 'ห้อง 310', 2);
INSERT INTO `tblrooms` VALUES (11, 'ห้อง 311', 2);
INSERT INTO `tblrooms` VALUES (12, 'ห้อง 312', 2);
INSERT INTO `tblrooms` VALUES (13, 'ห้อง 313', 1);
INSERT INTO `tblrooms` VALUES (14, 'ห้อง 314', 1);
INSERT INTO `tblrooms` VALUES (15, 'ห้อง 315', 1);
INSERT INTO `tblrooms` VALUES (16, 'ห้อง 316', 1);
INSERT INTO `tblrooms` VALUES (17, 'ห้อง 317', 1);
INSERT INTO `tblrooms` VALUES (18, 'ห้อง 318', 1);
INSERT INTO `tblrooms` VALUES (19, 'ห้อง 319', 1);
มีทั้งหมด 2 ไฟล์
ไฟล์ที่ 1
chkdate.php
Code (PHP)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
<title>Untitled Document</title>
</head>
<body>
<form name="form1" method="post" action="rechkbook.php">
<table width="333" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="186"><label>txtChekIn
<input name="txtcheckin" type="text" id="txtcheckin">
</label> </td>
<td width="141" rowspan="2"><label>
<div align="center">
<input type="submit" name="Submit" value="ค้นหา">
</div>
</label> </td>
</tr>
<tr>
<td><label>txtChekout
<input name="txtChekout" type="text" id="txtChekout">
</label> </td>
</tr>
<tr>
<td colspan="2">เลือกประเภท
<p>
<label>
<input type="radio" name="chktype" value="1">
เช็คห้องที่ถูกจอง</label>
<br>
<label>
<input type="radio" name="chktype" value="2">
เช็คห้องว่าง ไม่ถูกจอง </label>
<br>
</p></td>
</tr>
</table>
<br>
</form>
</body>
</html>
ไฟล์ที่ 2
rechkbook.php
Code (PHP)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
<title>Untitled Document</title>
</head>
<body>
<?
include 'connect_db.php';
if($_POST['txtcheckin'] != "" || $_POST['txtChekout'] != "")
{
date_default_timezone_set('UTC');
$startdate = $_POST['txtcheckin'];
$enddate = $_POST['txtChekout'];
$enddate1 = $_POST['txtcheckin'];
while (strtotime($startdate) <= strtotime($enddate))
{
echo "วันที่ "."$startdate".'<br>';
if ($_POST['chktype'] == 1 ){
$strSQL2 ="SELECT
tblcalendarevent.Event_ID,
tblcalendarevent.CE_StartDate,
tblcalendarevent.CE_EndDate,
tblcalendarevent.CE_Title,
tblcalendarevent.CE_Descript,
tblcalendarevent.RoomID,
tblcalendarevent.szState,
tblrooms.RoomType,
tblrooms.RoomName
FROM
tblcalendarevent
INNER JOIN tblrooms ON tblcalendarevent.RoomID = tblrooms.RoomID
WHERE NOT('$enddate1' < CE_StartDate OR '$startdate' > CE_EndDate)
ORDER BY RoomID";
}
if ($_POST['chktype'] == 2 ){
$strSQL2 ="SELECT
tblrooms.RoomID,
tblrooms.RoomName,
tblrooms.RoomType
FROM
tblrooms
WHERE tblrooms.roomID NOT IN (SELECT tblrooms.RoomID FROM tblrooms
INNER JOIN tblcalendarevent ON tblrooms.RoomID =tblcalendarevent.RoomID
WHERE NOT('$enddate1' < CE_StartDate OR '$startdate' > CE_EndDate))";
}
$objQuery2 = mysql_query($strSQL2) or die (mysql_error());
while($objResult2 = mysql_fetch_array($objQuery2))
{
echo "ห้อง ".$objResult2["RoomID"]."<br>";
//echo $objResult["RoomID"];
}
echo "<hr>";
$startdate = date ("Y-m-d", strtotime("+1 day", strtotime($startdate)));
$enddate1 = date ("Y-m-d", strtotime("+1 day", strtotime($enddate1)));
}
}
?>
</body>
</html>
แนวทางการทำผมได้แนวคิดมาจาก พี่ mr.win ที่ได้แนะนำในกระทู้
https://www.thaicreate.com/php/forum/064235.html
ความรู้คือการแบ่งปันครับ ไม่คาดหวังสิ่งใดนอกจากคำว่า ขอบคุณ ที่มีให้กันครับ
Tag : PHP, MySQL
|
ประวัติการแก้ไข 2013-02-27 12:02:51 2013-02-27 12:03:59
|
|
|
|
|
Date :
2013-02-27 11:56:39 |
By :
prachaporn |
View :
40585 |
Reply :
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แจ่มครับ จัดไป
|
|
|
|
|
Date :
2013-02-27 12:08:51 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เด็ดดวงครับ
|
|
|
|
|
Date :
2013-02-27 12:13:30 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เนื่องจากผมเห็นหลายท่าน ทำเกี่ยวกับ booking และมีปัญหากันมาก ผมเองก็มีปัญหาก็พยายามอยู่หลายวันครับ (ไม่ค่อยมีเวลาต้องทำงานด้วย)
พอทำได้ก็ดีใจมากเลยครับ (ผมไม่เก่งครับพึ่งหัดเขียน) ก็เลยอยากแจกให้คนที่มีปัญหาเรื่องนี้ได้ไปศึกษาต่อครับ
|
|
|
|
|
Date :
2013-02-27 12:24:53 |
By :
prachaporn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กำลังทำระบบนี้ พอดี ขอเอาไปศึกษานะครับ ขอบคุณครับ
|
|
|
|
|
Date :
2013-02-27 13:31:47 |
By :
Necrotorture |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะ
|
|
|
|
|
Date :
2013-11-21 12:23:13 |
By :
mama |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับ กำลังทำโปรเจคจบเรื่องนี้ มีปัญหาเหมือนกันครับ
|
|
|
|
|
Date :
2014-09-23 13:32:18 |
By :
pickkhun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากเลยครับ นำไปเป็นแนวสักหน่อย อิอิ
|
|
|
|
|
Date :
2015-09-17 12:44:44 |
By :
wita |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หายไป 1 คืนครับ ไม่รู้เเก้ยังไงเหมือนกันครับ
คนที่ 1 : 2016-10-16 - 2016-10-17 ห้อง 303
คนที่ 2 : 2016-10-18 - 2016-10-20 ห้อง 303
คืนที่หายคือ 2016-10-17 - 2016-10-18
*พอเช็ค ในวันที่ 2016-10-17 - 2016-10-18 ไม่ว่างซะงั้น ทั้งที่ที่เช็คเอ้าท์ก่อนเที่ยง วันนี้ต้องว่าง
|
|
|
|
|
Date :
2016-10-21 05:36:32 |
By :
นวพล CR |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|