我需要查询数据以显示当月每天的注册用户数,以便将json数组传递给jQuery Flot。
这是我到目前为止所做的:
for ($i = 1; $i <= date('t'); $i++) {
$date = date('Y') . '-' . date('m') . '-' . $i;
$sql = $db->first("SELECT COUNT(*) AS total FROM users WHERE (DATE(created) = '" . $date . "' LIMIT 1) GROUP BY DAY(created)");
($sql) ? $jdata['regs']['data'][] = array($i, (int)$sql->total) : $jdata['regs']['data'][] = array($i, 0);
$jdata['xaxis'][] = array($i, date('j', strtotime($date)));
}
print json_encode($jdata);
以上工作正常,但由于for循环它会产生30个查询。我希望能够通过消除for循环并在$ sql数组上使用它来优化它。
答案 0 :(得分:1)
您可以尝试这种方式,使用BETWEEN
子句获取当月每天的注册用户数。让我知道它对你有用。
SELECT DATE(created),COUNT(id) as total
FROM users
WHERE DATE(created) BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 1 MONTH)
GROUP BY DATE(created)