สอบถามการใช้เงื่อนไขคำสั่งของ Between ไม่ทราบว่าเขียนยังไง ช่วยทีค่ะ
เอา structure ของตารางมาดูหน่อยครับ แล้ว field ที่ต้อ้งการเช็ควันที่ เป็นฟีลด์อะไรบ้า่ง
Date :
2015-04-05 09:40:48
By :
Chaidhanan
ที่ต้องการ คือ ต้องการรู้ว่า ระหว่าง วันที่กำหนด มีงานอะไร อยุ่บ้างใช่ไหมครับ
Code (PHP)
$stDate = $_POST['stDate']; // field ชื่ออะไร แก้ให้ถุกด้วยนะครับ ไม่รู้ส่งอะไรมา
$enDate = $_POST['enDate']; // field ชื่ออะไร แก้ให้ถุกด้วยนะครับ ไม่รู้ส่งอะไรมา
$cate = 1;
$sql = <<<SQL
SELECT * FROM posttb WHERE cate=$cate
and ( ( begindate between '$stDate' and '$enDate') or (enddate between '$stDate' and '$enDate' ))
SQL;
Date :
2015-04-05 10:32:38
By :
Chaidhanan
ฟิลด์ในตารางตามนี้เลยค่ะ
ตัวแปรที่รับมาก็ begindate และ enddate เหมือนกันค่ะ
Date :
2015-04-05 10:49:06
By :
because
ได้แล้วค่ะพี่ สุดยอดจริง ๆ ค่ะพี่ Chaidhanan
ขอบคุณนะคะ ที่ช่วยน้องมาตลอด
Date :
2015-04-05 10:52:28
By :
because
พี่ Chaidhanan คะ มีเรื่องสอบถามอีกนิดนึง
ต้องการให้แสดงข้อมูลจากฐานข้อมูล โดยที่
ตัวอย่าง ฟิล์ begindate = "2015-04-13"
- เรียง โดยเริ่มต้นวัน+เดือนปัจจุบัน ไปวัน+เดือนอนาคต (เช่น วันนี้ 4 เดือนนี้เป็นเมษายน 2558) ก็แสดงข้อมูลที่เป็นของวันที่ 4 เดือนเมษายน 2558 ไปเรื่อย ๆ ถึงเดือนอนาคต
- ฉะนั้น วันและเดือนหลังจากนี้ (เช่น วันที่ 3 เมาายน 2558 ลงไป ไม่ต้องแสดงแล้ว ถือว่าหมดเวลาแล้ว)
ขอแนวทางการเขียนทีค่ะพี่
Date :
2015-04-05 12:05:13
By :
because
งั้นก็ตรวจสอบ แค่ begindate ก็พอครับ enddate ไม่ต้องตรวจสอบ
Date :
2015-04-05 12:18:59
By :
Chaidhanan
ถ้าตรวจสอบแค่ begindate แต่เวลาตรวจสอบ มันจะยังมีช่วงเวลาจัดงานอยู่นะคะ เช่น
วันนี้วันที่ 4 เมษายน 2558 แต่งานนึงมีงานตั้งแต่ 3 เมษายน ถึง 10 เมษายน 2558 อ่ะค่ะ
Date :
2015-04-05 13:51:16
By :
because
เดาๆๆๆๆ
1) st='2015-04-01', en='2015-04-10'
2) st='2015-04-04', en='2015-04-15'
3) st='2015-04-02', en='2015-04-04'
4) st='2015-04-07', en='2015-04-25'
result วันที่แสดงผล วันนี้ 2015-04-05
1) st='2015-04-05', en='2015-04-10'
2) st='2015-04-05', en='2015-04-15'
4) st='2015-04-07', en='2015-04-25'
แบบนี้หรือเปล่าครับ
ถ้าแบบนี้
Code (PHP)
$stDate = $_POST['stDate']; // field ชื่ออะไร แก้ให้ถุกด้วยนะครับ ไม่รู้ส่งอะไรมา
$enDate = $_POST['enDate']; // field ชื่ออะไร แก้ให้ถุกด้วยนะครับ ไม่รู้ส่งอะไรมา
$cate = 1;
$sql = <<<SQL
SELECT * FROM posttb WHERE cate=$cate
and ( ( begindate between '$stDate' and '$enDate') or (enddate between '$stDate' and '$enDate' ))
SQL;
// ใช้ PHP ช่วยแสดงผล
$rs=$db->query( $sql ) or die ( ..... );
while( $ro=$rs->fetch_assoc()){
echo ($stDate>$ro['begindate'] ? $stDate : $ro['begindate']), $ro['enddate'];
}
Date :
2015-04-05 17:00:00
By :
Chaidhanan
Load balance : Server 00