สอบถามเรื่องทำระบบจองห้องพัก เช็คการจองซ้ำ ในการเก็บวันที่ ที่อยู่ระหว่าง check in กับ check out ลงฐานข้อมูลครับ
คุณคงจะต้อง Loop แสดงตั้งแต่วันแรกถึงวันสุดท้าย และเช็คข้อมูลในแต่ล่ะวันว่ามีการจองไปแล้วหรือไม่ครับ
Date :
2011-08-04 09:36:59
By :
webmaster
Date :
2011-08-04 09:38:41
By :
suaingam
คุณต้องการแสดงวันไหนถึงวันไหนครับ
Date :
2011-08-04 09:50:14
By :
webmaster
จากรูปภาพคือ ข้อมูลที่มีอยู่แล้ว
อยากจะจองห้องห้องในช่วงเวลา checkin 2011-08-11 , check out 2011-09-11
ให้แสดงห้องที่สามารถจองได้ครับ
ขอบคุณมากนะครับ
Date :
2011-08-04 10:04:49
By :
pokultra
Code (PHP)
<?php
date_default_timezone_set('UTC');
// Start date
$startdate = '2011-08-01';
$enddate = '2011-08-31';
while (strtotime($startdate) <= strtotime($enddate)) {
echo "$startdate<br>";
$strSQL = "SELECT * FROM table booking WHERE ('$startdate' BETWEEN StartDate and EndDate) ";
..
..
$startdate = date ("Y-m-d", strtotime("+1 day", strtotime($startdate)));
}
?>
ถ้าไม่มี Record แสดงว่าว่างครับ
Date :
2011-08-04 12:37:03
By :
webmaster
งั้นแสดงว่าผมต้องมี table ของห้องใช่ไหมครับ
เพราะผมเก้บแค่เลขห้องเข้าไปไว้ในตารางเดียวกับตารางจองอ่ะครับ
Date :
2011-08-04 13:13:47
By :
pokultra
เปล่าครับ ที่ select ออกมาทีแรกน่ะถูกแล้ว
ทีนี้ไป select ห้องทั้งหมดของเรา มาเชคกับที่เราได้ select ครั้งแรก
โดยเปรียบเทียบด้วยคำสั่ง IN_ARRAY น่ะครับ
Date :
2011-08-04 15:40:52
By :
deawx
ก่อนอื่นต้องขอบคุณ พี่วิน และคุณเดี่ยว มากครับ
จากคำแนะนำของพี่วิน ตอนนี้วนลูปได้แล้วครับ
Code (PHP)
<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>">
<table width="95%" border="0" align="center" cellpadding="1" cellspacing="1" class="common_black_13px" style="border:1px #d9d9d9 solid;">
<tr>
<td class="sec_title"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
<td width="80" align="right">Check In </td>
<td width="150"><input type="text" id="datepicker-en-1" name="txtChekIn" class="common_blue_14px txt_input_search" value="<?=$_GET["txtChekIn"];?>" /></td>
<td width="80">- Check Out</td>
<td width="150"><input name="txtCheckOut" type="text" class="common_blue_14px txt_input_search" id="datepicker-en-2" value="<?=$_GET["txtCheckOut"];?>" /></td>
<td width="60"><input type="submit" value="Search" style="border:1px #999 solid; padding:2px 5px; background: #CCC"/></td>
<td> </td>
</tr>
</table></td>
</tr>
</table>
</form>
<?
if($_GET["txtChekIn"] != "" || $_GET["txtCheckOut"] != "")
{
date_default_timezone_set('UTC');
$objDB = mysql_select_db($database,$conn);
$startdate = $_GET['txtChekIn']; // '2011-08-01';
$enddate = $_GET['txtCheckOut']; // '2011-08-31';
while (strtotime($startdate) <= strtotime($enddate))
{
echo "$startdate<br>";
$strSQL = "SELECT * FROM tblcalendarevent WHERE ( '$startdate' BETWEEN CE_StartDate and CE_EndDate)";
$objQuery = mysql_query($strSQL) or die (mysql_error());
$objResult = mysql_fetch_array($objQuery);
echo "ห้อง 3".sprintf("%02d",$objResult['RoomID'])." : ".$objResult['Event_ID']." : ";
$startdate = date ("Y-m-d", strtotime("+1 day", strtotime($startdate)));
$strSQL_Check = "SELECT * FROM tblcalendarevent";
$objQuery_Check = mysql_query($strSQL_Check) or die (mysql_error());
$objResult_Check = mysql_fetch_array($objQuery_Check);
if(in_array('$startdate', $objResult_Check)){
print('Found it!');
}
}
}
?>
ส่วนที่ว่าต้องใช้ in_array() เช็ค ต้องใช้ยังงัยอ่ะครับ ผมพยายามอ่านและลองดูแล้วแต่ก็ยังไม่ได้อยู่ดีครับอ่ะ
ยังไงก็ลบกวน พี่วิน คุณเดี่ยว และผู้รู้ที่เข้ามาอ่านแนะนำเป็นวิทยาทานหน่อยนะครับ
Date :
2011-08-04 17:42:24
By :
pokultra
ใช้แบบนั้นแหละครับ กำลังจะมาตอบให้พอดีครับ วันนี้ยุ่งทั้งวัน แต่ก็ทิ้งบอร์ดไม่ได้
Date :
2011-08-04 17:49:11
By :
webmaster
แล้วผมจะได้ค่าอะไรออกมาอ่ะครับ มันวนลูปแต่ของพี่วินมาอย่างเดียวเลย ฮื่อๆๆๆๆ
ติดทั้งมาทั้งวันเหมือนกันอ่ะครับ
Date :
2011-08-04 17:54:09
By :
pokultra
Code (PHP)
<?
if($_GET["txtChekIn"] != "" || $_GET["txtCheckOut"] != "")
{
date_default_timezone_set('UTC');
$objDB = mysql_select_db($database,$conn);
$startdate = $_GET['txtChekIn']; // '2011-08-01';
$enddate = $_GET['txtCheckOut']; // '2011-08-31';
while (strtotime($startdate) <= strtotime($enddate))
{
$strSQL = "SELECT * FROM tblcalendarevent WHERE ( '$startdate' BETWEEN CE_StartDate and CE_EndDate)";
$objQuery = mysql_query($strSQL) or die (mysql_error());
$objResult = mysql_fetch_array($objQuery);
if(!$objResult)
{
echo "$startdate ว่าง<br>";
}
$startdate = date ("Y-m-d", strtotime("+1 day", strtotime($startdate)));
}
}
?>
แค่นี้ไม่ได้เหรอครับ
Date :
2011-08-04 18:02:29
By :
webmaster
ขอบคุณพี่วินมากครับ ตอนนี้ได้แล้วว่าช่วงไหนว่างสามารถจองได้
แต่ว่าจะรู้ได้งัยว่าห้องไหนว่างอ่ะครับ
แล้วพี่วินพอจะยกตัวอย่างการใช้ in_array() ให้ดูหน่อยได้ไหมครับ
หรือจะถ้าคุณเดี่ยวเข้ามาก็ช่วยแนะนำหน่อยนะครับ อยากได้อารมณ์เดียวกับที่คุณเดี่ยวให้ดูเป็นตัวอย่างเลยครับ
Date :
2011-08-04 19:36:12
By :
pokultra
ขอแนวอีกหน่อยนะครับพี่ๆๆ
Date :
2011-08-04 20:29:58
By :
pokultra
ไม่เข้าใจครับ มันมีเงื่อนไขอื่นอีกเหรอครับ
Date :
2011-08-04 21:16:31
By :
webmaster
คืออย่างนี้ครับพี่วิน
ผมมีตารางเก็บข้อมูลอย่างนี้ครับ
Code (PHP)
CREATE TABLE `tblcalendarevent` (
`Event_ID` tinyint(4) NOT NULL auto_increment,
`CE_StartDate` date NOT NULL,
`CE_EndDate` date NOT NULL,
`RoomID` int(11) NOT NULL,
`szState` int(11) NOT NULL,
PRIMARY KEY (`Event_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=34 ;
--
-- Dumping data for table `tblcalendarevent`
--
INSERT INTO `tblcalendarevent` VALUES (1, '2011-06-22', '2011-08-26', 1, 1);
INSERT INTO `tblcalendarevent` VALUES (2, '2011-06-21', '2011-08-06', 2, 1);
INSERT INTO `tblcalendarevent` VALUES (4, '2011-07-01', '2011-08-08', 4, 1);
INSERT INTO `tblcalendarevent` VALUES (5, '2011-07-23', '2011-08-20', 5, 1);
INSERT INTO `tblcalendarevent` VALUES (6, '2011-07-23', '2011-08-21', 5, 1);
INSERT INTO `tblcalendarevent` VALUES (8, '2011-07-13', '2011-08-27', 6, 1);
INSERT INTO `tblcalendarevent` VALUES (9, '2011-07-15', '2011-08-27', 7, 1);
INSERT INTO `tblcalendarevent` VALUES (10, '2011-07-15', '2011-08-30', 7, 1);
INSERT INTO `tblcalendarevent` VALUES (12, '2011-07-17', '2011-08-27', 8, 1);
INSERT INTO `tblcalendarevent` VALUES (13, '2011-07-23', '2011-08-20', 9, 1);
INSERT INTO `tblcalendarevent` VALUES (15, '2011-07-24', '2011-08-20', 11, 1);
INSERT INTO `tblcalendarevent` VALUES (16, '2011-07-03', '2011-07-29', 12, 3);
INSERT INTO `tblcalendarevent` VALUES (17, '2011-07-03', '2011-07-29', 12, 3);
INSERT INTO `tblcalendarevent` VALUES (18, '2011-07-21', '2011-08-20', 13, 1);
INSERT INTO `tblcalendarevent` VALUES (19, '2011-07-04', '2011-08-01', 14, 3);
INSERT INTO `tblcalendarevent` VALUES (23, '2011-07-29', '2011-08-28', 10, 1);
INSERT INTO `tblcalendarevent` VALUES (24, '2011-07-29', '2011-08-28', 10, 1);
INSERT INTO `tblcalendarevent` VALUES (26, '2011-07-29', '2011-08-29', 12, 1);
ที่วันนี้พี่แนะนำผมมามันแสดงช่วงเวลาที่ว่างแล้วจากฐานข้อมูล
แต่ผมก็ไม่รู้ว่าห้องไหนว่างในช่วงเวลาบ้าง
ผมลองเขีนอย่างนี้อ่ะครับ
ที่ตอบโจทย์ได้เลย ประมาณนี้เลยครับ
http://www.cyberthai.net/bookrent/?crtdeawx=nullroom
รบกวนขอแนวทางหน่อยครับ
ประวัติการแก้ไข 2011-08-05 10:15:57
Date :
2011-08-04 21:28:09
By :
pokultra
ถ้าจะให้ดีอาจจะต้อง Query ห้องอีกน่ะครับ คือใช้ Loop ซ้อนข้างในอีกครับ อาจจะ Query เยอะหน่อย แต่ง่ายครับ
Code (PHP)
<?
if($_GET["txtChekIn"] != "" || $_GET["txtCheckOut"] != "")
{
date_default_timezone_set('UTC');
$objDB = mysql_select_db($database,$conn);
$startdate = $_GET['txtChekIn']; // '2011-08-01';
$enddate = $_GET['txtCheckOut']; // '2011-08-31';
while (strtotime($startdate) <= strtotime($enddate))
{
echo $startdate."<br>";
$strSQL = "SELECT * FROM room WHERE 1";
$objQuery = mysql_query($strSQL) or die (mysql_error());
while($objResult = mysql_fetch_array($objQuery))
{
$strSQL2 = "SELECT * FROM tblcalendarevent WHERE ( '$startdate' BETWEEN CE_StartDate and CE_EndDate) AND room_id = '".$$objResult["room_id"]."' ";
$objQuery2 = mysql_query($strSQL2) or die (mysql_error());
$objResult2 = mysql_fetch_array($objQuery2);
if(!$objResult2)
{
echo "ห้อง ".$objResult2["room_name"]." ว่าง<br>";
}
}
echo "<hr>";
$startdate = date ("Y-m-d", strtotime("+1 day", strtotime($startdate)));
}
}
?>
ตัวนี้จะแสดงว่าห้องไหนว่างด้วยครับ คือคุณจะต้องมีตารางห้องด้วยครับ
Date :
2011-08-04 21:38:45
By :
webmaster
จาก code ของพี่วินอ่ะครับผมลองเอามาปรับใช้ตามนี้ครับ
Code (PHP)
<?
if($_GET["txtChekIn"] != "" || $_GET["txtCheckOut"] != "")
{
date_default_timezone_set('UTC');
$objDB = mysql_select_db($database,$conn);
$startdate = $_GET['txtChekIn']; // '2011-08-01';
$enddate = $_GET['txtCheckOut']; // '2011-08-31';
while (strtotime($startdate) <= strtotime($enddate)) // ให้วนลูปโดยเช็คว่าวันที่ เข้า <= ออก ใช้ไหมครับ
{
echo $startdate."<br>"; แสดงผลวันที่
//$strSQL = "SELECT * FROM room WHERE 1"; WHERE 1 คือให้ WHERE อะไรหรอครับพี่
$strSQL = "SELECT * FROM tblrooms"; // เลือกข้อมูลจากตารางห้อง
$objQuery = mysql_query($strSQL) or die (mysql_error());
while($objResult = mysql_fetch_array($objQuery)) //วนลูป
{
$strSQL2 = "SELECT * FROM tblcalendarevent WHERE ( '$startdate' BETWEEN CE_StartDate and CE_EndDate) AND RoomID = '".$$objResult["RoomID"]."' "; // WHERE ห้อง ทำไมหรอครับไม่เข้าใจ
$objQuery2 = mysql_query($strSQL2) or die (mysql_error());
$objResult2 = mysql_fetch_array($objQuery2);
if(!$objResult2)
{
echo "ห้อง ".$objResult2["RoomID"]." ว่าง<br>"; // แสดงผลออกมาได้ครับว่า ห้อง ว่าง แต่ ID ห้องไม่ออกมาด้วยะครับ
}
}
echo "<hr>";
$startdate = date ("Y-m-d", strtotime("+1 day", strtotime($startdate)));
}
}
?>
ผลที่ได้
แต่ข้อมูลจริงๆ มีตามนี้อ่ะครับ ซึ่งจริงๆ วันที่ 5 มีคนเข้าอยู่แล้ว
ที่พี่วินบอกว่าต้องมีตารางห้อง ผมมีตารางสำหรับ ห้องแล้วครับเก็บตามรายละเอียดอย่างนี้พอไหมครับพี่
SQL tblrooms
--
-- Table structure for table `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;
--
-- Dumping data for table `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);
และนี่คือขอมูลที่เก็บอยู่ครับ
SQL tblrooms
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`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=51 ;
--
-- Dumping data for table `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);
ปล.รบกวนพี่วินด้วยนะครับ เกรงใจแต่ติดเรื่องนี้เรื่องเดียวจริงๆ อ่ะครับ
ปล. จะมีโครงการขายเสื้อเว็บอีกไหมครับ ตัวเดิมมันเก่าหมดแล้วอ่ะครับ ^^
Date :
2011-08-05 10:48:31
By :
pokultra
ถูกแล้วครับ ลองคิดออกจากการเขียน code ก่อนน่ะครับ
คือในแต่ล่ะวัน เราจะต้องตรวจสอบ ทุกห้อง ว่ามีการจองไปหรือไม่
แก้ไขใหม่ครับ
Code (PHP)
echo "ห้อง ".$objResult["RoomID"]." ว่าง<br>";
Date :
2011-08-05 13:10:29
By :
webmaster
ถ้าไม่ได้ยังไงประมาณค่ำ ๆ 2-3 ทุ่มทักมาน่ะครับ เดียวจะมาช่วยเขียนให้ครับ
Date :
2011-08-05 13:12:37
By :
webmaster
'ห้อง 301' ในตารางห้องเก็บคำว่าห้องไปด้วย
แต่ตารางจอง กลับมีแค่ 301 แร้วมานจะเชคกันยังไงหละนั่น เหวย เหวย
Date :
2011-08-05 13:38:41
By :
deawx
ขอบคุณครับพี่วิน เด่วจะลองดูครับ
พี่เดียวครับ ผมเก็บค่าในตาราง tblcalendarevent อยู่ในฟิล RoomID ซึ่งมันจะเป็นค่าเดียวกับ ฟิล RoomID ในตาราง tblrooms
ผมเอามาเช็คกันได้ไหมครับพี่เดียว
แล้วเรื่อง in_array() ของพี่เดี่ยวนี้ยังไงอ่ะครับ อยากรู้เพิ่มเติม แต่ตอนนี้ขอไปลองของพี่วินก่อนนะครับ
ขอบคุณพี่ๆ ทั้งสองคนมากนะครับ
Date :
2011-08-05 13:51:38
By :
pokultra
ขอบคุณพี่วินมากครับ
ตอนนี้เช็คได้แล้วครับว่าวันไหนว่างบ้าง
วันที่ 2011-08-05 ถึง 2011-08-31
ดังรูปครับ
แต่จากที่มันคิวรี่ออกมา
2011-08-05
ห้อง 2 ว่าง
ห้อง 3 ว่าง
ห้อง 5 ว่าง
ห้อง 7 ว่าง
ห้อง 8 ว่าง
ห้อง 9 ว่าง
ห้อง 10 ว่าง
ห้อง 11 ว่าง
ห้อง 12 ว่าง
ห้อง 13 ว่าง
ห้อง 14 ว่าง
ห้อง 15 ว่าง
ห้อง 16 ว่าง
ซึ่งแจ้งว่าห้องที่2 ว่างอยู่ สามารถจอง ได้วันที่ 2011-08-05
แต่จริงๆมีการจองวันที่ 2011-08-06 ถึง 2011-09-06 อยู่
ซึ่งตามหลักการมันต้องจองไม่ได้แล้วหรือป่าวครับ
เพราะถ้าเราจองวันที่ 2011-08-05 ถึง 2011-08-31 ในห้องที่ 2 มันก็ชนกันอ่ะครับ
ผมจะทำยังไงดีให้มันโชว์เฉพาะห้องที่สามารถจองได้ทั้งช่วงเวลาที่กำหนด
โดยที่ไม่ชนกับห้องที่มีการจองแล้วตลอดช่วงเวลาของการจองครับ
T_T
Date :
2011-08-05 16:08:22
By :
pokultra
จริงๆ เราเอาวัน เริ่มต้น ไปเช็คกับ วันสิ้นสุดได้เลยหรือป่าวครับ พี่วิน
Date :
2011-08-05 22:38:42
By :
pokultra
พี่วินครับ..ผมลอง query อย่างนี้ได้ไหมครับ
Code (PHP)
<?
if($_GET["txtChekIn"] != "" || $_GET["txtCheckOut"] != "")
{
date_default_timezone_set('UTC');
$objDB = mysql_select_db($database,$conn);
$startdate = $_GET['txtChekIn']; // '2011-08-01';
$enddate = $_GET['txtCheckOut']; // '2011-08-31';
$strSQL = "SELECT * FROM tblrooms"; // เลือกข้อมูลห้องจากตาราง tblrooms
$objQuery = mysql_query($strSQL) or die (mysql_error());
while($objResult = mysql_fetch_array($objQuery))
{
$strSQL2 = "SELECT * FROM tblcalendarevent WHERE ( '$startdate' BETWEEN CE_StartDate and CE_EndDate) AND RoomID = '".$objResult["RoomId"]."' ";
// จาก line $strSQL2 พี่ฃ่วยอธิบายบรรทัดนี้หน่อยได้ไหมครับ ว่ามันทำงานยังไง ผมลองอย่างนี้ได้แล้วข้อมูลตามที่ต้องการ ไม่แน่ใจว่าถูกหรือไม่ครับ พี่วิน ผมอยากได้ความเข้าใจครับพี่วิน
$objQuery2 = mysql_query($strSQL2) or die (mysql_error());
$objResult2 = mysql_fetch_array($objQuery2);
if(!$objResult2)
{
echo "ห้อง ".$objResult["RoomId"]." ว่าง<br>";
}
}
}
?>
ประวัติการแก้ไข 2011-08-06 01:33:23
Date :
2011-08-06 01:32:20
By :
pokultra
พี่วินยุ่งๆ หรอครับ...ผมรบกวนพี่วินมากไปแน่ๆ เลย
Date :
2011-08-08 11:56:20
By :
pokultra
ขอบคุณครับพี่ ree ที่ชี่ทางสว่าง
เมื่อเราต้องการหาว่าห้องไหนถูกจองเราใช้คำสั่งนี้
Code (PHP)
$strSQL = "SELECT * FROM table booking WHERE (StartDate BETWEEN '2011-05-17' and '2011-05-20') OR (EndDate BETWEEN '2011-05-17' and '2011-05-20')
// แต่ในทางกลับกัน เราต้องการหาว่าห้องไหนที่ไม่ถูกจอง ก็ใส่ NOT เข้าไปซะเลย
$strSQL = "SELECT * FROM table booking WHERE !((StartDate BETWEEN '2011-05-17' and '2011-05-20') OR (EndDate BETWEEN '2011-05-17' and '2011-05-20'))
Date :
2011-11-28 20:02:31
By :
toon024
สนใจ มากเลย คร้า
แต่ทำไม่เป็นอ่ะ ไม่รุจะเริ่มยังไง
Date :
2012-02-11 16:06:21
By :
Gwang_zaa
รบกวนพี่ๆทีครับ ปฎิทินการจองแบบที่ไม่ไห้จองวันที่ผ่านมาได้ นี่เขียนยังไงเหรอครับหรือหาได้จากไหรขอบคุณครับ
Date :
2013-01-21 03:17:33
By :
คิล
เอ่่อ ทำให้จองวันย้อนหลังไม่ได้ได้แล้วครับ ติดตรงที่มันยังจองวันที่ผ่านมาได้อยู่ คือผมเปนระบบจองโรงแรมครับ รบกวนพี่ๆแนะนำพอเป็นวิทยาทานครับ
Date :
2013-01-21 11:06:42
By :
คิล
อยากได้โค้ดเกี่ยวกับการจองงานเลี้ยงค่ะ...พี่ๆพอจะช่วยได้มั้ยค่ะ
Date :
2013-01-23 16:11:56
By :
DEW
ขอรบกวนหน่อยครับ ผมจำเป็นต้องสร้างตารางวันที่หรือเปล่า แล้วจึงมาตรวจสอบ ถ้าใช้ between แล้ววันนี้จะสร้างขึ้นมาเองหรือเปล่าครับ หรือว่าผมจำเป็นต้องเขียนวันที่ ทุกๆวันเลย???? ปัญหาคือ ผมไม่มีตาราง start date and end date ถ้าใช้คำสั่ง sql between โปรแกรมจะรันให้ผมเลยมั้ยคับ???? หรือจำเป็นต้อง insert date ทีละตัวคับ
Date :
2013-03-12 21:58:36
By :
coe
เพราะถ้า จองวันที่ 01/12/2556 ถึง 31/12/2556 จะตรวจได้แค่สองวันคือ start กับ end date แต่ถ้ามันตรวจสอบ 02/12/2556 ถึง 30/12/2556 มันจะไม่อยู่ใน between 01/12/2556 ถึง 31/12/2556 เพราะเราไม่ได้มีวันที่ 01/12/2556 ถึง 31/12/2556 ในการตรวจสอบ มันจะตรวจสอบ เฉพาะ between สองวันเท่านั้น ทำให้ 02/12/2556 ถึง 30/12/2556 ยังคงมีปัญหา รบกวน admin หน่อยคับ ผมไปถามเพื่อนมา ถ้าเป็นแบบนี้ ต้องเขียน sql มากกว่า กับ น้อยกว่า วันที่ด้วย เพื่อให้มันเป็นช่วงเวลาที่ขาดหายไป
ปล.admin มาตอบเฉพาะผู้ที่เป็นสมาชิกป่าวคับ
Date :
2013-03-13 17:24:32
By :
coe
ช่วยดูหน่อยครับ ....ทำไม่code มันไม่ตรวจสอบครับ
$c_chkdup=mysql_db_query($dbname,"select subject,s_time,e_time,b_status from bookroom where room_id='$room_id' and datemeet='$datemeet' and (('$s_time' BETWEEN s_Time and e_Time) OR ('$e_time' BETWEEN s_Time and e_time))");
--------------------------------------------------------
ถ้าเป็นอันนี้ตรวจสอบแต่ยังไม่ค่อยสมบูรณ์
$c_chkdup=mysql_db_query($dbname,"select subject,s_time,e_time,b_status from bookroom where room_id='$room_id' and datemeet='$datemeet' and (('$s_time' >= s_time and '$s_time' <= e_time) or ('$e_time' >= s_time and '$e_time' <= e_time))");
Date :
2016-02-10 13:19:23
By :
baby137
ผมขอชุดโค้ดนี้ได้ป่าวครับ
Date :
2016-03-04 23:00:34
By :
Todsapon
สำหรับคนที่ยังทำไม่ได้ให้ลองศึกษา ตัวนี้เพิ่มเติมครับผมเขียนไว้นานแล้ว อาจจะช่วยได้นะครับ
https://www.thaicreate.com/php/forum/091528.html
Date :
2016-06-20 16:22:12
By :
prachaporn
Load balance : Server 03