2012-12-11 76 views
0

我有一個數據庫搜索顯示結果基於選定的標準,其中一個標準是日期範圍,再加上其他3個標準。搜索效果很好,我可以按日期範圍搜索只顯示所有結果,或者我可以搜索日期範圍並添加1,2或所有其他3個變量..但是,如果我離開日期範圍沒有結果顯示。使用MySQL數據庫。搜索數據庫與多個條件,但沒有選擇日期時沒有顯示結果

Search page:: 

$term1 = $_REQUEST['term1']; 
$term2 = $_REQUEST['term2']; 
$term3 = $_REQUEST['term3']; 
$term4 = $_REQUEST['term4']; 
$term5 = $_REQUEST['term5']; 

$terms= '&term1='.$term1 . '&term2='.$term2 . '&term3='.$term3 . '&term4='.$term4 . '&term5='.$term5; 

$limit=15; 

$sql ="SELECT * FROM ircb WHERE cdate BETWEEN '$term2' AND '$term3' AND staff LIKE '%$term1%' AND item LIKE '%$term4%' AND service LIKE '%$term5%' ORDER BY id DESC LIMIT $start_from, 15"; 


$rs_result = mysql_query ($sql); 
$num_rows = mysql_num_rows($rs_result); 
$query = mysql_query("SELECT * FROM ircb WHERE cdate BETWEEN '$term2' AND '$term3' AND staff LIKE '%$term1%' AND item LIKE '%$term4%' AND service LIKE '%$term5%'"); 
$number=mysql_num_rows($query); 

期限2和3項從日期選擇器中輸入,並把在000-00-00正確格式的日期範圍而言,我認爲這個問題是WHERE語句 感謝

回答

0

是的,這將是問題。理想情況下,您可以設置日期字符串的默認值,以覆蓋所有可能的日期,如果日期未設置或爲0000-00-00。

例如:

if((!isset($_REQUEST['term2'])) OR ($_REQUEST['term2'] == '0000-00-00')) { 
    $term2 = '1970-01-01'; 
} 
if((!isset($_REQUEST['term3'])) OR ($_REQUEST['term3'] == '0000-00-00')) { 
    $term3 = date("Y-m-d"); 
} 

所以在事件的日期方面沒有設定,它會使用跨越指定日期範圍內(最多爲當前日期)的默認值。

+0

非常感謝 – user1356282

+0

非常歡迎:) – monkeymatrix