我目前正在使用此代码输出结果数组:
<?PHP
$db = JFactory::getDbo();
//Start date
$startdate = date('2010-05-21');
// End date
$end_date = date("Y-m-d");
$arraystring = '';
while (strtotime($startdate) <= strtotime($end_date)) {
$query = "SELECT * FROM table1 WHERE FROM_UNIXTIME(tm,'%Y-%m-%d') = '".$startdate."'";
$db->setQuery($query);
$replyAGS = $db->query();
$my_count = $db->getNumRows();
$arraystring .= $my_count.', ';
$startdate = date ("Y-m-d", strtotime("+1 day", strtotime($startdate)));
}
$arraystring = rtrim($arraystring, ', ');
?>
如您所见,我在从特定日期到当前日期的循环中执行数据库查询。 假设这个循环是从 1 月开始运行的。 2007年1月2014 年意味着总循环数为 2557,这不是性能/服务器负载方面的严重问题吗? 有没有更聪明的方法来做到这一点?
最佳答案
请尝试这个查询:
SELECT FROM_UNIXTIME(tm,'%Y-%m-%d') AS `Day`
, COUNT(*) AS Visits
FROM `table1`
GROUP BY
FROM_UNIXTIME(tm,'%Y-%m-%d')
如果它对你有用,你必须添加:
WHERE FROM_UNIXTIME(tm,'%Y-%m-%d') > DATE('2010-05-21')
关于php - Joomla - 循环内的 MySQL 查询 - 我想这是不好的做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25512088/