分组MONTH并在MYSQL和PHP中列出Days

时间:2016-07-07 12:22:26

标签: php mysql

嗨我知道这可能听起来像stackoverflow中的其他问题很熟悉,但是我试图在这个问题上得到什么,是否有任何可能的方法来如何使用它的日子来分组MONTH和YEARS列表也列出了,但在不同的月份分组。如下所示:

  1. 2016年1月
    • 2016年1月1日
    • 2016年1月2日
  2. 2016年2月
    • 2016年2月1日
    • 2016年2月2日
  3. 我实际上有一个表单,它的作用是你可以使用DATE FROM和DATE TO的过滤器以及另一个MONTHLY查看过滤器进行搜索。因此,让您选择MONTHLY过滤器和2016年1月1日至2016年2月29日的日期范围,它应该显示如下。

    第一组:

    1. 2016年1月
      • 2016年1月1日
      • 2016年1月2日
      • 等..至2016年1月31日
    2. 第二组:

      1. 2016年2月
        • 2016年2月1日
        • 2016年2月2日
        • 等..至2016年2月29日
      2. 我的查询很简单:

        $query = msyqli_query($con, "select YEAR(maxi_date),MONTH(maxi_date) from maxi_summaryreport where maxi_date between '2016-01-01' and '2016-02-29' group by YEAR(maxi_date), MONTH(maxi_date)");
        
        $ahtquery = "select maxi_aht,maxi_callsanswered from maxi_summaryreport where maxi_date Between '2016-01-01' and '2016-02-29' and maxi_location='Zapote'
        ";
        
        $ahtq = mysqli_query($con, $ahtquery);
        while($ahtf1 = mysqli_fetch_assoc($ahtq))
        {
            $aht1 = $ahtf1['maxi_aht'];
            $ahtout1[] = $aht1;
            //echo $aht1."-summary report<br>";
            $cal1 = $ahtf1['maxi_callsanswered'];
            $calout1[] = $cal1;
            //echo "<br>".$cal1." - ".$aht1."<br>";             
        }
        while($row = mysqli_fetch_array($query))
        {
          echo "<br>".$calout1[$a]." - ".$ahtout1[$a]."<br>";   
          $a++;
        }
        

        但它只显示的是:

        第一组

        1. 2016年1月1日
        2. 第二组

          1. 2016年2月1日
          2. 不是

            第一组

            1. 2016年1月1日
            2. 2016年1月2日
            3. 2016年1月3日
            4. ...等。至2016-01-31
            5. 第二组

              1. 2016年2月1日
              2. 2016年2月2日
              3. 2016年2月3日
              4. ......等到2016-02-29
              5. 有人可以帮助我吗?我一直在网上寻找一些解决方法,但我并不擅长sql。非常感谢您的帮助。

                嗨,大家好,非常感谢你给我的所有帮助和想法,我刚刚找到了问题的解决方案。这是以下代码。

                 $q=mysqli_query($con,"SELECT DISTINCT MONTH(maxi_date),YEAR(maxi_date), maxi_srid,maxi_date FROM maxi_summaryreport where maxi_location='Zapote' and 
                maxi_date between '$datefrom' and '$dateto' group BY MONTH(maxi_date), YEAR(maxi_date)");
                 foreach($q as $cat){
                    echo '<li id="'.$cat['MONTH(maxi_date)'].'" class="files">';  
                    echo '<a href="'.$cat['maxi_srid'].'">'.$cat['MONTH(maxi_date)'].", ".$cat['YEAR(maxi_date)'].'</a>'; 
                    echo '<ul class="sub-menu">';
                    echo  $cat['maxi_srid'];
                    $linkq=mysqli_query($con,"SELECT * FROM maxi_summaryreport WHERE maxi_location = 'Zapote' and MONTH(maxi_date)='" . $cat['MONTH(maxi_date)'] . "'"); 
                    foreach($linkq as $link){
                       echo '<li><a href="#">'.$link['maxi_date'].'</a></li>';
                       echo mysqli_num_rows($linkq);
                    }
                    echo '</ul></li>';
                 }
                

0 个答案:

没有答案