在開發模組功能最怕遇到就是多條件的資料表交叉查詢,例如查詢資料表條件A+條件B,但又可單獨查詢條件A及條件B,如果只有1-2個查詢項目還好,但如果同時有5個或更多的查詢項目,有時候容易出錯,所以想出來一個高效率又方便的交叉查詢function寫法分享給大家!! 例如像下面這個介面圖有5項查詢功能,要能同時查詢單項及多項交叉查詢並將結果顯示右方的總表內容中!! 這樣必須設資料表的where查詢條件!如果一個一個判斷,5項查詢會產生5*5=25總組合!會寫到累死,所以乾脆直接function起來批次處理!! //資料交叉查詢組合 function crossquery($where=""){ foreach($where as $key=> $val){ $wherevar.=$val; } $wherevar=!empty($wherevar) ? "where ".$wherevar."" : ''; // get TRUE //去除最後字元 $wherevar=substr($wherevar,0,-4); return $wherevar; } 這樣就吧查詢條件全部交叉組合起來了,只需要在要讀取資料表的php檔中呼叫crossquery()函式並吧$where陣列直送入 //資料交叉查詢 $wherevar['0']=!empty($setuptime) ? "`setuptime` LIKE '%$setuptime%' and " : false; //時間有值 $wherevar['1']=!empty($enfunction) ? "`enfunction` = '".$enfunction."' and " : false; //功能有值 $wherevar['2']=!empty($basid) ? "`basid` = '".$basid."' and " : false; //單位有值 $wherevar[...