 |
สอบถามการใช้เงื่อนไขคำสั่งของ 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 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|