Select ค่าเดือนและปีแยกกันได้ แต่ select พร้อมกันไม่ได้
อ่านแล้วยังงง ๆ น่ะครับ ว่าแต่ได้ Apply ใช้กับ DATE_FORMAT หรือใช้พวก YEAR,MONTH,DAY แล้วหรือยังครับ
Date :
2013-12-27 12:40:03
By :
mr.win
ลองไม่ใช้ LIKE แล้วใช้ == ดูสิครับ
Date :
2013-12-27 18:33:51
By :
pokultra
Code (PHP)
$a2=$_POST["txtjob_date_month"];
$a3=$_POST["txtjob_date_year"];
//ได้แล้ว เลือกแต่่ เดือน
if(!empty($a2)){
//$sql = "SELECT * FROM job WHERE job_date LIKE '%".$a1."%'";
$sql = "SELECT * FROM job WHERE DATE_FORMAT(job_date,'%m')LIKE '%".$a2."%'";
//ได้แล้ว เลือกแต่ ปี
}else if(empty($a2)&&!empty($a3)){
$sql = "SELECT * FROM job WHERE job_date LIKE '%".$a3."%'";
//ยังไม่ได้
}else if(!empty($a2) && !empty($a3)){
$m = $a2*1; //แก้ไข
$y = $a3*1; //แก้ไข
$sql = "SELECT * FROM job WHERE month(job_date)=$m and year(job_date)=$y ";
}else{
$sql = "SELECT * FROM job";
}
Date :
2013-12-27 22:04:46
By :
num
Code (PHP)
$year = yyyy;
$month = mm;
$sql = "select * from table where 1=1";
if(!empty($month)){
$sql .= " and month(date_field) = '" . $month . "'";
}
if(!empty($year)){
$sql .= " and year(date_field) = '" . $year . "'";
}
มันผิดที่ condition มากกว่ามั้ง
Date :
2013-12-28 02:14:20
By :
PlaKriM
ผิดจากเงื่อนไขจริงๆ ตามคุณ PlaKriM แนะนำเลยครับ
ถ้าเงื่อนไขเป็น true จะเข้าไปทำงานใน if block แรกทันที โดยไม่เข้าไปเช็ค else/else if ถัดไป
จะเกิดการเช็ค else if ถัดไปก็ต่อเมื่อ if block แรก หรือ else if อันก่อนมีค่าเป็น false ครับ
โค้ดเดิมถ้ามีการระบุเดือนและปีพร้อมกัน
$a2 = '01';
$a3 = '2013';
if(!empty($a2)){ //true ...................... เกิด true แล้วจึงทำงานทันทีไม่เช็ค else if ถัดไป
}else if(empty($a2)&&!empty($a3)){ //false
}else if(!empty($a2) && !empty($a3)){ //true
}else{
}
อาจจะปรับลำดับเงื่อนไขเป็นดังนี้ครับ
$a2 = '01';
$a3 = '2013';
if(!empty($a2) && !empty($a3)){//ถ้ามีตัวใดตัวหนึ่งว่าง เงื่อนไขจะ false และเกิดการเช็ค else if ถัดไปครับ
}else if(!empty($a3)){
}else if(!empty($a2)){
}else{
}
Date :
2013-12-28 08:14:53
By :
num
Date :
2013-12-28 09:27:53
By :
mr.win
ได้แล้วค่ะ !!!!
ขอบคุณทั้งพี่ PlaKriM และพี่ num นะคะ
อ้อ แล้วก็ขอบคุณพี่ Rastafari ด้วยค่ะ
ขอบคุณมาก ๆ นะคะ
Code (PHP)
$a2=$_POST["txtjob_date_month"];
$a3=$_POST["txtjob_date_year"];
if(!empty($a2) && !empty($a3)){
$sql = "SELECT * FROM job WHERE DATE_FORMAT(job_date,'%m')LIKE '%".$a2."%' AND job_date LIKE '%".$a3."%'";
}
else if(!empty($a2)){
$sql = "SELECT * FROM job WHERE DATE_FORMAT(job_date,'%m')LIKE '%".$a2."%'";
}else if(!empty($a3)){
$sql = "SELECT * FROM job WHERE job_date LIKE '%".$a3."%'";
}else{
$sql = "SELECT * FROM job";
}
Date :
2014-01-02 10:53:43
By :
momiya123
Load balance : Server 01