|
|
|
ช่วยด้วยค่ะ ทำระบบจองห้องประชุมออนไลน์ แต่ติด Query วันที่ไม่เช็คซ้ำ |
|
|
|
|
|
|
|
Code (PHP)
$objResult = mysql_fetch_array($objQuery);//เป็น array น่ะครับ $objResult["ID_Test"];
//
//น่าจะ
if($objResult['ID_Test']==0){
echo "สามารถจองได้";
}else{
echo "ห้องเต็ม ไม่สามาถจองได้";
}
ลองดูน่ะครับ
|
|
|
|
|
Date :
2014-10-22 10:12:26 |
By :
bunchuai |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
include("connectdb.php");
$time1 = $_POST["myHour1"].":".$_POST["myMin1"].":00";
$time2 = $_POST["myHour2"].":".$_POST["myMin2"].":00";
$strSQL = "
SELECT * FROM reserve
WHERE (
( '$_POST[myDate1] $time1' between concat(strdate, ' ', strtime) and concat(enddate, ' ', endtime) )
or
( '$_POST[myDate2] $time2' between concat(strdate, ' ', strtime) and concat(enddate, ' ', endtime) )
)
and mr_id = '$_POST[myRoom]' and r_status ='Y' limit 1";
$objQuery = mysql_query($strSQL);
$num_row = mysql_num_rows($objQuery);
if($num_row){
echo "ห้องไม่ว่าง มีคนจองแล้ว!";
}else{
echo "ห้องว่าง สามารถจองได้!";
}
?>
ปล. field strdate strtime รวมกันได้ก็รวมนะครับ enddate endtime เหมือนกัน
|
ประวัติการแก้ไข 2014-10-22 10:45:38 2014-10-22 10:47:35
|
|
|
|
Date :
2014-10-22 10:41:40 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถามอีกนิดนึงค่ะ พอดีอยากเพิ่ม query ที่เป็น r_status = 'S' ด้วย
แต่เพิ่มตามโค๊ดด้านล่างนี้ไป ปรากฎว่าคลิกจองวันไหนก้อไม่สามารถจองห้องประชุมได้อะค่ะ ช่วยดูให้ทีค่ะ
Code (PHP)
and mr_id = '$_POST[myRoom]' and r_status ='Y' or r_status = 'S' limit 1";
|
ประวัติการแก้ไข 2014-10-24 11:54:18
|
|
|
|
Date :
2014-10-24 11:53:34 |
By :
cutefulllifehoney |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
การใช้ or ร่วมกับ and ต้องเขียนประมาณนี้ ครับ and ( r_status ='Y' or r_status = 'S' ) แนะการเขียนเฉยๆ นะ ไม่เกี่ยวกับเรื่องที่ถามมา
|
|
|
|
|
Date :
2014-10-24 12:04:15 |
By :
gaowteen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
include("connectdb.php");
$time1 = $_POST["myHour1"].":".$_POST["myMin1"].":00";
$time2 = $_POST["myHour2"].":".$_POST["myMin2"].":00";
$strSQL = "
SELECT * FROM reserve
WHERE (
( '$_POST[myDate1] $time1' between concat(strdate, ' ', strtime) and concat(enddate, ' ', endtime) )
or
( '$_POST[myDate2] $time2' between concat(strdate, ' ', strtime) and concat(enddate, ' ', endtime) )
)
and mr_id = '$_POST[myRoom]' and r_status ='Y' limit 1";
$objQuery = mysql_query($strSQL);
$num_row = mysql_num_rows($objQuery);
if($num_row){
echo "ห้องไม่ว่าง มีคนจองแล้ว!";
}else{
//echo "ห้องว่าง สามารถจองได้!";
// ห้องว่างทำการจอง
$sql="
insert into reserve
set strdate='$_POST[myDate1]' , strtime='$time1'
, enddate='$_POST[myDate2]' , endtime='$time2'
, mr_id='$_POST[myRoom]' , r_status='Y'
";
// ใส่เอาเองครับ field อื่น ผมไม่ร้ว่า field อะไรบ้าง ควรจะทำตั้งแต่ตรงนี้นะครับ แบบ insert เข้าไปตรงๆเลย
msyql_query($sql);
}
?>
|
|
|
|
|
Date :
2014-10-24 12:46:48 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มีปัญหาอีกแล้วค่ะ !!
ระบบเช็คค่าซ้ำของเวลาแค่วันที่จองวันเดียว เช่น
คนแรกจองวันที่ 2014-10-08 เวลา 08.00น.ถึง 12.00น.
คนที่ 2 จองวันเดียวกันกับคนแรก แต่จองเวลา 13.00น. ถึง 17.00น. ระบบให้จองได้ไม่มีปัญหา
แต่ถ้าจองหลายวัน เช่น คนแรกจอง 2014-10-08 ถึงวันที่ 2014-10-12 เวลา 08.00น. ถึง 12.00น.
คนที่ 2 จองวันเดียวกันกับคนแรก แต่จองเวลา 13.00น. ถึง 17.00น. ระบบฟ้องว่าไม่สามารถจองได้ แต่ความจริงแล้วควรจะจองได้
ตามโค๊ดด้านล่างนี้ ช่วยดูให้ด้วยค่ะ
Code (PHP)
include("connectdb.php");
$time1 = $_POST["myHour1"].":".$_POST["myMin1"].":00";
$time2 = $_POST["myHour2"].":".$_POST["myMin2"].":00";
$strSQL = "
SELECT * FROM reserve
WHERE (
( '$_POST[myDate1] $time1' between concat(strdate, ' ', strtime) and concat(enddate, ' ', endtime) )
or
( '$_POST[myDate2] $time2' between concat(strdate, ' ', strtime) and concat(enddate, ' ', endtime) )
)
and mr_id = '$_POST[myRoom]' and ( r_status = 'Y' or r_status = 'S' ) limit 1 ";
$objQuery = mysql_query($strSQL);
$num_row = mysql_num_rows($objQuery);
if($num_row){
echo "ห้องไม่ว่าง มีคนจองแล้ว!";
}else{
echo "ห้องว่าง สามารถจองได้!";
}
|
ประวัติการแก้ไข 2014-10-24 14:46:41
|
|
|
|
Date :
2014-10-24 14:45:31 |
By :
cutefulllifehoney |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ้อ ถ้าเป็นแบบนี้ ต้องนำเข้าหลายเรคคอร์ดครับ
เพราะใช้ ช่วงเวลา เป็นตัวกำหนด
for( $fix_date=วันที่เริ่มต้นจอง ; $fix_date<=วันที่สิ้นสุดการจอง; $fix_date++){
$mysql->query( "insert into tb set strdate=$fix_date, strtime=เวลาเริ่มต้นจอง, endtime=เวลาสิ้นสุดการจอง");
}
ส่วน endate ไม่ต้องใช้แล้วครับ
ส่วนคำสั่งคิวรี่หา เวลาว่างก็ต้องเปลี่ยน
และวิธีการ เอาเวลาที่ต้องการ มา เสริชหา ไม่เวิรค์เหรอกครับ
เวลาแสดงควร แสดงเป็น กราฟ สีว่าช่วงเวลานี้ ของวันนี้ ว่าง
เพราะคิวรี่ที่ ทำให้ มัน จะบอกว่า ไม่ว่าง แม้ว่า มันจะ ชนกันแค่วันเดียว ซึ่งลูกค้าไม่มีสิทธิ์เปลี่ยนการตัดสินใจ
แต่ถ้าแสดงเป็น กราฟตามวันซึ่งลูกค้ามองเห็น อาจจะตัดสินใจเลื่อนแค่วันเดียว เปลี่ยนเวลาเร็วขึ้นหรือช้าออกไปก็ได้
|
|
|
|
|
Date :
2014-10-24 15:12:31 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|