我需要在MySQL中進行查詢。 但是,查詢需要用用戶選擇的選項進行dinamically。使用選項構建查詢
選項爲日,月,年 & SellerID。
用戶將選擇是否要查看賣家的銷售歷史,天,月和年。
但是,讓我們假設他想看到所有的銷售2012年3月。他將離開日在空白並接受03月01日所有的銷售,直到3月31日......
,也許他離開選項月空白,並設置天= 15和年份= 2012 ,他將從2012年全年以及每個月的第15天獲得銷售歷史。
我的程序需要建立一個查詢,準確地涵蓋他想查看的內容。
的問題是:
我真的需要在我的代碼中使用數千IF
?沒有更好的方法來做到這一點嗎?
if(($day==0) && ($month==0) && ($year>0)){
$query.="`date`>='{$year}-01-01' AND `date`<='{$year}-12-31'";
}elseif(($day==0) && ($month>0) && ($year>0)){
$query.="`date`>='{$year}-{$month}-01' AND `date`<='{$year}-{$month}-31'";
}elseif{
etc...
我很感激你有*一些*錯誤檢查。不過,我鼓勵你考慮[SQL注入](http://php.net/manual/en/security.database.sql-injection.php)和[Prepared Statements](http://php.net/manual/) EN/mysqli.quickstart.prepared-statements.php)。 –
因此,您正在使用每個參數的下拉菜單?不是日曆小部件?反思用戶界面有些人可能會更容易。 Sane默認和一個好的界面可能允許你想要的,而不必在控制器上編寫這麼多的邏輯。 – ficuscr
感謝您指出SQL注入賈森,我知道它的存在,但我的系統將只用於授權人員,他們不會搞砸自己的數據庫 – BernaMariano