我正在制定分別爲每個1,3,6,12和24個月生成報告的要求,其中用戶通過選擇下拉列表選擇他的選擇。首先我寫了查詢來生成1個月的報告,這很好。但我不確定如何根據用戶選擇使選擇動態化。如何在MySQL中獲取季度,半年,年度和24個月的報告?
我的查詢低於:
switch($months){
case "1":
$stmt = $pdo->prepare("SELECT count(*) as totalrows FROM today_analysis WHERE order_status=:order_status AND MONTH(track_date)=MONTH(CURDATE())");
break;
case "3":
$stmt = $pdo->prepare("SELECT count(*) as totalrows FROM today_analysis WHERE order_status=:order_status AND CEIL(MONTH(track_date)/3)");
break;
case "6":
$stmt = $pdo->prepare("SELECT count(*) as totalrows FROM today_analysis WHERE order_status=:order_status AND CEIL(MONTH(track_date)/6)");
break;
case "12":
$stmt = $pdo->prepare("SELECT count(*) as totalrows FROM today_analysis WHERE order_status=:order_status AND CEIL(MONTH(track_date)/12)");
break;
case "24":
$stmt = $pdo->prepare("SELECT count(*) as totalrows FROM today_analysis WHERE order_status=:order_status AND CEIL(MONTH(track_date)/24)");
break;
}
我的選擇下拉是:
<select name="month_analysis" id="month_analysis" class="month_analysis">
<option value="1" <?php echo (isset($_GET['monthly']) && $_GET['monthly']=='1')?'selected':''?>>Current Month</option>
<option value="3" <?php echo (isset($_GET['monthly']) && $_GET['monthly']=='3')?'selected':''?> >3 Months</option>
<option value="6" <?php echo (isset($_GET['monthly']) && $_GET['monthly']=='6')?'selected':''?> >6 Months</option>
<option value="12" <?php echo (isset($_GET['monthly']) && $_GET['monthly']=='12')?'selected':''?> >12 Months</option>
<option value="24" <?php echo (isset($_GET['monthly']) && $_GET['monthly']=='24')?'selected':''?> >24 Months</option>
</select>
目前,該查詢似乎是工作,但我不知道這是否工作正常與否。請提供任何建議/幫助?謝謝。
你可能想使用'BETWEEN',https://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#operator_between – Qirel