php - 从 MYSQL 结果数据中获取最大值
问题描述
我使用 MySQL 从 Wordpress DB 返回了过去 7 天的一些数据,其中包含针对每个帖子 ID 的查看次数和下载次数。
现在我想打印日期的最大下载次数和最大查看次数,以及所有数据。
我的代码是:
$statquery = "
SELECT *
FROM wp_dstats
WHERE postid = $postid
ORDER
BY date ASC
LIMIT 7
";
$statsdata = $wpdb->get_results( $statquery );
if (count($statsdata) >= 1)
{
// PRINT MAX DOWNLOADS AND MAX VIEWS WITH DATE HERE
foreach($statsdata as $stats)
{
$views = $stats->views;
$downloads = $stats->downloads;
$date = $stats->date;
echo $date.' - Views: '.$views.' | Downloads: '.$downloads,'<br />';
}
}
所有数据都按照我的要求打印,但我还想打印最大下载量和最大浏览量。
解决方案
创建 2 个变量来存储最大 DL 和最大视图以及其他 2 个变量来存储它们的日期
检查每一行的值,并在循环后打印它们。
$statquery = "SELECT * FROM wp_dstats WHERE postid = $postid ORDER BY date ASC LIMIT 7";
$statsdata = $wpdb->get_results( $statquery );
//declare vars
$max_vw = $max_dl = 0; // sorry can't remember how to declare PHP var
$max_vw_dt = $max_dl_dt = '';
if (count($statsdata) >= 1){
foreach($statsdata as $stats){
// CHECK AND STORE MAX DL & MAX VIEW
if($stats->downloads > $max_dl){
$max_dl = $stats->download;
$max_dl_dt = $stats->date;
}
if($stats->views > $max_vw){
$max_vw = $stats->views;
$max_vw_dt = $stats->date;
}
// PRINT ALL RECORDS HERE
$views = $stats->views;
$downloads = $stats->downloads;
$date = $stats->date;
echo $date.' - Views: '.$views.' | Downloads: '.$downloads.'<br />'; // you have a typo here: , -> should be .
}
// PRINT MAX DOWNLOADS AND MAX VIEWS WITH DATE HERE
echo 'Max Download is '. $max_dl . ' on Date: ' . $max_dl_dt;
echo 'Max Download is '. $max_vw . ' on Date: ' . $max_vw_dt;
}
推荐阅读
- ios - 在终端上获取 URL 后如何将数据传递给 tableview?斯威夫特 5
- conv-neural-network - 应用 2 个 conv 2d 层时的图像输出
- mysql - 将 MySQL /var/lib/mysql 移动到共享卷
- c++ - 测试“stream >> char”有什么作用?
- angularjs - 对 AngularJs 基于组件的模式适应 TypeScript 感到困惑
- sql-server - 如何在 SQL Server -PIVOT 中获取最近 30 天交易的最后 30 分钟记录?
- python - 蛮力只对某些密码有效,而对其他密码无效?
- aws-lambda - AWS API Gateway 将 Content-Type 标头添加到 OPTIONS 请求
- javascript - 从多个数组返回汇总统计信息
- javascript - 为什么在 JavaScript 中定义后可以更改对象 const?