php - Joomla - 循环内的 MySQL 查询 - 我想这是不好的做法

标签 php mysql joomla

我目前正在使用此代码输出结果数组:

<?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/

相关文章:

php - Swift、php 和 unicode 字符

mysql - 为什么启用服务器端准备好的语句会导致 CONCUR_UPDATABLE 错误?

plugins - 如何创建一个简单的 joomla 插件?

php - joomla 自定义标题 seo

javascript - 使用 PHPExcel 从 Excel 加载动态数据

php - Smarty中带有消息 'Missing template name'的“SmartyException”

php - 如何知道是否通过 require_once() 调用了 php 脚本?

php - 在 mysql 字段中分隔的外部 ID

MySQL全文搜索: need fast insert and fast search

javascript - 如何使用 Javascript 访问带有空括号(内部没有点)的另一个对象中的对象?