|
|
|
พี่ Bginner คะ พี่ ๆทุกคนช่วยทีค่ะ ตารางกำหนด checkin เป็น 2010-01-01 และ checkout เป็น 2010-01-02 |
|
|
|
|
|
|
|
ตาม code ด้านล่าง
ตารางกำหนด checkin เป็น 2010-01-01 และ checkout เป็น 2010-01-02
ค่าที่ถูก post เข้ามาเป็น
$_POST[checkin] เป็น 2010-01-01 และ
$_POST[checkout] เป็น 2010-01-02
ซึ่งค่ามันจะเท่ากับในตารางของฟิลด์ checkin และ checkout ค่ แต่พอรันกลับได้ข้อความว่า
"ใช้ช่วงเวลานี้ได้" แทนที่จะเป็น "เวลาจองมีบางช่วงเวลาทับซ้อนกับช่วงจองแล้ว"
ช่วยดูทีค่ะผิดตรงไหนเอ่ย
Code (PHP)
<?
$dateime1 = $_POST[checkin];
$date = explode('/', $dateime1);
$check_in = implode('-', array($date[2], $date[1], $date[0]));
$dateime2 = $_POST[checkout];
$date = explode('/', $dateime2);
$check_out = implode('-', array($date[2], $date[1], $date[0]));
$host="localhost";
$username = "root";
$password = "123456";
$db="resortdb";
$connect=mysql_connect($host,$username,$password) or die ("Cannot Connect to MySQL");
mysql_select_db($db) or die ("Cannot connect to Database");
mysql_query("set NAMES tis620");
$sql="select * from reservation where checkin=$check_in and checkout=$check_out";
$db_query=mysql_db_query($db,$sql);
$result=mysql_fetch_array($db_query);
$id=$result[id];
$checkin=$result[checkin];
$checkout=$result[checkout];
echo "$check_in<br>$check_out<br><br>";
echo "$checkin<br>$checkout<br><br>";
$tin=strtotime($checkin);
$tout=strtotime($checkout);
$nin=strtotime($check_in);
$nout=strtotime($check_out);
if(($nin>=$tin && $nin<=$tout) ||($nout>=$tin && $nout<=$tout) ||( ($nout-$nin)>($tout-$tin) && ( ($tin>=$nin && $tin<=$nout) ||($tout>=$nin && $tout<=$nout)))){
echo "เวลาจองมีบางช่วงเวลาทับซ้อนกับช่วงจองแล้ว";
}else{
echo "ใช้ช่วงเวลานี้ได้";
}
?>
Tag : - - - -
|
|
|
|
|
|
Date :
2010-01-16 10:20:07 |
By :
tukata |
View :
892 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ระหว่างรอบีนะครับเดียวผมเช็คดูก่อนว่าบีว่างหรือเปล่าถ้าอยู่เดียวจะบอกให้ครับ
ถ้าลองตามตัวอย่างนี้มันก็ได้นะครับผมทดสอบดูแล้ว
Code (PHP)
$checkin = "2010-01-15";
$checkout = "2010-01-20";
$test ="2010-01-17";
$tin=strtotime($checkin);
$tout=strtotime($checkout);
$t=strtotime($test);
if($t>=$tin && $t<=$tout){
echo "อยู่ในช่วงเวลา";
}else{
echo "อยู่นอกช่วงเวลา";
}
แต่ของคุณตุ๊กตา ไม่มีวันที่ตรวจสอบว่าวันที่นี้อยู่ในช่วงเวลาหรือเปล่า เช่น
$checkin = "2010-01-15"; //วันที่เข้าระบบ
$checkout = "2010-01-20"; //วันที่ออกระบบ
$test ="2010-01-17"; //วันที่ตรวจสอบว่าอยู่ระหว่าง วันที่เข้าระบบและวันที่ออกระบบหรือเปล่า ลองเพิ่มวันที่ตรงนี้เข้าไปตรวจสอบดูครับว่าจะได้ตาม
ที่ต้องการหรือเปล่าอาจจะตั้งเป็นวันที่ปัจจุบันก็ได้ $test=date("Y-m-d");
ถ้าผมเข้าใจอะไรผิดก็ขออภัยนะครับ
|
|
|
|
|
Date :
2010-01-16 12:01:49 |
By :
somparn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือตามที่เขียนด้านบนอ่ะค่ะ ใช้ code นั้นอ่ะค่ะ ค่าที่ถูก post จากการกรอกเข้ามา จะมาเช็คกับตารางในฐานข้อมูล แต่เมื่อ sql ตามเงื่อนไขแล้ว กลับไม่มีเห็นข้อมูลในตารางอ่ะค่ะ ถ้าตามที่พี่ phpbasic ตอบมา น้องทำตามผ่านค่ะ เพราะมันน่าจะถูกกำหนดตายตัว แต่ของน้องเป็นการ post เข้ามาและเช็คจากตารางในฐานข้อมูลอ่ะค่ะ
|
|
|
|
|
Date :
2010-01-16 12:50:58 |
By :
tukata |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|