php - 错误的 PHP 脚本,帮我减少 28 mysql_queries

标签 php mysql

我最终得到了有史以来最糟糕的 PHP 代码(它可以工作,但太可怕了!也许你可以告诉我更好的方法)。我试图在我的网页上显示 14 天的统计数据。我需要每天显示 4 个值(下载、上传的文件数;下载和上传的文件大小)。我有 2 个表(文件和 downloads_log),结构是:

文件(文件名、文件大小、上传日期时间) 下载日志(文件名,dl_datetime)

所以我需要以下内容:

Count all files uploaded from table `files` in specific day
Count all files downloaded from table `downloads_log` in specific day
SUM file_size in table `files` in specific day
SUM file_size in table `files` where files.file_name = downloads_log.file_name in specific day

这就是我过去 14 天所需要的一切。

以及我已经完成的“脚本”:

  for($i = 13; $i >= 0; $i--) {
    $query_downloads  = mysqli_query($con, "SELECT files.file_name, files.file_size, downloads_log.dl_file_name, downloads_log.dl_datetime, COUNT(file_name), SUM(file_size) FROM files, downloads_log WHERE files.file_name = downloads_log.dl_file_name AND `dl_datetime` >= '".date("Y-m-d", strtotime("-$i day"))." 00:00:00' AND `dl_datetime` <= '".date("Y-m-d", strtotime("-$i day"))." 23:59:59'");
    $result_downloads = mysqli_fetch_assoc($query_downloads);

    $query_uploads  = mysqli_query($con, "SELECT file_name, file_size, COUNT(file_name), SUM(file_size) FROM files WHERE `upload_datetime` >= '".date("Y-m-d", strtotime("-$i day"))." 00:00:00' AND `upload_datetime` <= '".date("Y-m-d", strtotime("-$i day"))." 23:59:59'");
    $result_uploads = mysqli_fetch_assoc($query_uploads);
  }

请给我建议,如何用更简单的方法解决这个问题,不要给 mysql 带来巨大的负载,谢谢 :)

最佳答案

希望对您有所帮助:

SELECT files.file_name, files.file_size, downloads_log.dl_file_name, downloads_log.dl_datetime, COUNT(file_name), SUM(file_size) 
FROM files
join downloads_log on files.file_name = downloads_log.dl_file_name and to_days(now())-14<to_days(dl_datetime)
group by to_days(dl_datetime) 

对另一个查询使用相同的想法。你会没事的。

它选择最近 14 天和每天的组。

关于php - 错误的 PHP 脚本,帮我减少 28 mysql_queries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15929072/

相关文章:

php - 根据特定产品有条件地删除 Woocommerce 购物车项目

php - 使用范围内的价格过滤产品

javascript - 弹出窗口和原始开启器之间的通信

PHP/SQL 按人搜索

如果没有图像上传到数据库,php设置默认图像

php - 唯一ID的最佳方法(PHP + Mysql)

php - Cakephp 2 : need help on misconfiguration with PDOStatement

PHP-CI : How to Combine 2 arrays from few tables in databases?

python - 使用 Python 加速(批量)插入 MySQL

c++ - 使用 C++ 和 [ERROR] unresolved external symbol _mysql_error@4 referenced in function _main 连接 mysql