 |
php + booking ถามเรื่องเกี่ยวกับการเช็คช่วงเวลา ครับ เพื่อไม่ให้จองเวลาซ้ำกัน |
|
 |
|
|
 |
 |
|
ลองดูไม่รู้ได้หรือป่าว
where ( time1>$input1 and time1>$input2) or ( time2<$input1 and time2<$input2)
แล้ว count ดูนะ
ถ้าเท่ากับ 1 เพิ่มได้
ถ้าเท่ากับ 0 เพิ่มไม่ได้
|
 |
 |
 |
 |
Date :
2010-07-12 20:56:33 |
By :
heng |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แปลงเป็น mktime แล้วใช้คำสั่ง between เช็ค ครับ
Code
$a=mktime(0,0,0,07,10,7,2010);
$b=mktime(0,0,0,07,12,7,2010);
$txtb1=mktime(0,0,0,07,12,7,2010);
$txtb2=mktime(0,0,0,07,12,7,2010);
$sql="select*from tb where $txtb1 between $a and $b";
$res=mysql_query($sql);
$num_rows=mysql_num_rows;
if($num_rows>1)
{
echo"ช่วงเวลาดังกล่าว มีคนจองไปแล้ว";
exit;
}
|
 |
 |
 |
 |
Date :
2010-07-12 22:44:40 |
By :
iieszz |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าผมเก็บไนฐานข้อมูลแบบนี้
ค่าเริ่มต้น รับค่าจาก $time11 เก็บในฐานข้อมูล time1 สมมุติเท่ากับ 2010-07-10
ค่าสิ้นสุด รับค่าจาก $time22 เก็บในฐานข้อมูล time2 สมมุติเท่ากับ 2010-07-12
ต้องกำหนดค่าไว้ในตัวแปลตัวไหนครับ เพื่อจะได้เปรียบเทียบได้ จาก ตัวอย่างของคุณ iieszz
Code (PHP)
$a=mktime(0,0,0,07,10,7,2010);
$b=mktime(0,0,0,07,12,7,2010);
$txtb1=mktime(0,0,0,07,12,7,2010);
$txtb2=mktime(0,0,0,07,12,7,2010);
$sql="select*from tb where $txtb1 between $a and $b";
$res=mysql_query($sql);
$num_rows=mysql_num_rows;
if($num_rows>1)
{
echo"ช่วงเวลาดังกล่าว มีคนจองไปแล้ว";
exit;
}
ปล.ครับ วิธีของคุณ heng (ข้อความแรก)
where ( time1>$input1 and time1>$input2) or ( time2<$input1 and time2<$input2)
แล้ว count ดูนะ
ถ้าเท่ากับ 1 เพิ่มได้
ถ้าเท่ากับ 0 เพิ่มไม่ได้
วิธีการ count ทำอย่างไร รบกวนช่วยบอกด้วยครับ
พื้นฐานไม่ดี รบกวนช่วยชี้แนะด้วยครับ
|
 |
 |
 |
 |
Date :
2010-07-13 03:51:55 |
By :
ฝึกหัด |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณ คุณmr.win มากๆครับ ทำได้แล้วครับ! และก็ขอบคุณทุกๆคนที่เข้ามาให้คำแนะนำครับ
|
 |
 |
 |
 |
Date :
2010-07-14 00:54:10 |
By :
ฝึกหัด |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมขอรบกวน พี่ ๆ อีกนิดนึงนะครับ
คือของผมเป็นระบบจองห้องประชุมนะครับ (การประชุมแต่ละครั้งอาจใช้เวลาไม่ถึงวันใช่ไหมครับ)
ผมจำเป็นต้องเก็บระยะเวลาเริ่มใช้ห้อง และเวลาสิ้นสุดการใช้ห้องด้วย ผมควรที่จะเช็ค ทั้งวันที่ และเวลา ยังไงครับ
ขอบคุณล่วงหน้าครับ
ผมมือใหม่.....
|
 |
 |
 |
 |
Date :
2011-08-07 00:50:38 |
By :
มือใหม่ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ พี่ win ตอนนี้เช็ควันได้แล้ว แต่เวลา ตอนบันทึกลงฐานข้อมูล
รูปแบบจะเป็นแบบนี้ครับ 2011-08-10 00:00:00 ถึง 2011-08-15 00:00:00
ผมคิดไม่ออกว่า จะให้ user เลือกเวลายังไงครับ แล้วรูปแบบเวลาตอนให้ user กรอกต้องเป็นยังไงครับ รบกวนพี่ ๆ ด้วยนะครับ
|
 |
 |
 |
 |
Date :
2011-08-07 14:35:57 |
By :
มือใหม่ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
รบกวนหน่อยครับพี่ mr.win
สมมุติผมใช้ Code (PHP)
SELECT *,count(rtid) as num_room FROM room_order WHERE (chk_in BETWEEN ' 2011-11-19' and '2011-11-20') OR (chk_out BETWEEN ' 2011-11-19' and '2011-11-20') group by rtid
ในการค้นหาห้องตัวนี้ค้นเจอปกตินะครับ
ตอนนี้ผมเจอปัญหาประมาณว่า
สมมุติ ห้องที่ผมสร้างมี 2 ห้อง
ถ้า มี user จองไว้ระหว่างวันที่ 2011-11-15 to 2011-11-30 แล้ว
และลูกค้าคนต่อไป ต้องการจองห้อง วันที่ 2011-11-19 to 2011-11-20
ซึ่งเมื่อลองใช้ between จะกลายเป็นว่าไม่เห็น record ที่จองไป 2011-11-15 to 2011-11-30
ในลักษณะนี้พอมีคำแนะนำไหมครับ อยากเขียนให้เช็คว่า 2011-11-15 to 2011-11-30 มีการจองไปแล้ว 1 ห้อง เหลืออีก 1 ห้อง
แต่ปัจจุบัน ผลลัพธ์ที่ได้คือ
จองระหว่างวันที่ 2011-11-19 to 2011-11-20 ผลลัพธ์ที่ได้คือ ห้องว่าง 2 ห้อง
สืบเนื่องจากกระทู้ https://www.thaicreate.com/php/forum/069289.html#5 นี้นะครับ
ขอคำปรึกษาด้วยนะครับ
|
 |
 |
 |
 |
Date :
2011-11-20 18:51:01 |
By :
asustak |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมเจอปํญหาเดียวกับด้านบนเลยครับช่วยน่ะนำหน่อยน่ะครับ
|
 |
 |
 |
 |
Date :
2012-05-05 22:42:57 |
By :
sdcard |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|