我有一系列SQL查询来输出所有12个月的数值。最小化一系列SQL查询
$chartIncomejan = $query->fetch("SELECT *, SUM(rent_amount) AS 'num' FROM transaction WHERE paid_on LIKE '%2015-01%'");
$chartIncomefeb = $query->fetch("SELECT *, SUM(rent_amount) AS 'num' FROM transaction WHERE paid_on LIKE '%2015-02%'");
$chartIncomemar = $query->fetch("SELECT *, SUM(rent_amount) AS 'num' FROM transaction WHERE paid_on LIKE '%2015-03%'");
$chartIncomeapr = $query->fetch("SELECT *, SUM(rent_amount) AS 'num' FROM transaction WHERE paid_on LIKE '%2015-04%'");
...
这是我的输出
if ($chartIncomejan['num'] > '0') { echo $chartIncomejan['num'].','; } else { echo '0,'; }
if ($chartIncomefeb['num'] > '0') { echo $chartIncomefeb['num'].','; } else { echo '0,'; }
if ($chartIncomemar['num'] > '0') { echo $chartIncomemar['num'].','; } else { echo '0,'; }
if ($chartIncomeapr['num'] > '0') { echo $chartIncomeapr['num'].','; } else { echo '0,'; }
...
它作为回声逗号分隔值列表码...等
我想这个代码减少到最小可能的代码量,但我不知道从哪里开始。我应该做阵列吗?也许是一个foreach语句?如果你可以展示一个例子(不一定用我的代码),那也会很有帮助。
我不知道为什么我会被低估。这是一个真正尝试学习最佳实践的人的合理问题... –
什么数据类型是'paid_on'列 – RiggsFolly
'paid_on'是TIMESTAMP –