首页 > 解决方案 > 从 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 />';
    }
}

所有数据都按照我的要求打印,但我还想打印最大下载量和最大浏览量。

标签: phpmysql

解决方案


创建 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;
}

推荐阅读