首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php和mysql中的组存档

php和mysql中的组存档
EN

Stack Overflow用户
提问于 2016-09-29 10:17:00
回答 1查看 43关注 0票数 2

我想创建一个这样的归档列表:

  • 2016年
    • 2016年7月
      • 16人中的5人
      • 16人中的4人
      • 16人中的3人
      • 测试16中的2

代码语言:javascript
复制
- February 2016  
    - testing 1 of 16

  • 2015年
    • 2015年11月
      • 测试15中的1

但它的表现是这样的:

  • 2016年
    • 2016年7月
      • 16人中的5人
      • 16人中的4人
      • 16人中的3人
      • 测试16中的2

代码语言:javascript
复制
- February 2016  
    - testing 1 of 16

代码语言:javascript
复制
- November 2015  
    - testing 1 of 15

  • 2016年
    • 2016年7月
      • 16人中的5人
      • 16人中的4人
      • 16人中的3人
      • 测试16中的2

代码语言:javascript
复制
- February 2016  
    - testing 1 of 16

代码语言:javascript
复制
- November 2015  
    - testing 1 of 15

  • 2015年
    • 2016年7月
      • 16人中的5人
      • 16人中的4人
      • 16人中的3人
      • 测试16中的2

代码语言:javascript
复制
- February 2016  
    - testing 1 of 16

代码语言:javascript
复制
- November 2015  
    - testing 1 of 15

这是我的源代码:

代码语言:javascript
复制
$query = "SELECT * FROM blogs ORDER BY date DESC";
$resultSet = mysql_query($query);

if (mysql_num_rows($resultSet)){
$newsArray = array();

echo '<ul>' . PHP_EOL;                                           

while ($newsResult = mysql_fetch_array($resultSet)){ 
    $newDate =  $newsResult['date'] ;   
    $timePeriod = date('F  Y ',strtotime($newDate));
    $timePeriodY = date('Y',strtotime($timePeriod));
    $timePeriodM = date('F',strtotime($timePeriod));                                          

    /*if (!isset($newsArray[$timePeriod])){
          $newsArray[$timePeriod] = array();
    }*/
    $newsArray[$timePeriod][] = $newsResult;                                      
}                                         

//by year
foreach ($newsArray as $timePeriod => $newsItems){
    $timePeriodY = date('Y',strtotime($timePeriod));
    echo '<li><strong>' . $timePeriodY . '</strong>' . PHP_EOL;  
    echo '<ul>' . PHP_EOL;

    //by month
    foreach ($newsArray as $timePeriod => $newsItems){
        echo '<li><strong>' . $timePeriod . '</strong>' . PHP_EOL;  
        echo '<ul>' . PHP_EOL;                                

        //news items
        foreach ($newsItems as $item){
            echo '<li>';
            echo '<a href="'.$wwwUrl.'press-releases/'.$item["id"].'/'.$item["titlename"].'.php">'.$item["titlename"].'</a>';
            echo '</li>' . PHP_EOL;
        }     

        //end by month
        echo '</ul>' . PHP_EOL; 
        echo '</li>' . PHP_EOL;                   
    }

    //end by year
    echo '</ul>' . PHP_EOL; 
    echo '</li>' . PHP_EOL;                   
}

echo '<li>&nbsp;</li>' . PHP_EOL;   
echo '</ul>' . PHP_EOL; 
} else {
echo 'No Blog Found';
}

请帮我把这个和感谢提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-29 10:25:08

你用“by”“分组”,而你应该用"Y“”分组“,然后用”by“来”分组“

例如:

代码语言:javascript
复制
$newsArray[$timePeriod][] =  $newsResult;

应该是这样的

代码语言:javascript
复制
$newsArray[$timePeriodY][timePeriod][]=  $newsResult;

然后,您的代码将变成:

代码语言:javascript
复制
$query = "SELECT * FROM blogs ORDER BY date DESC";
$resultSet = mysql_query($query);

if (mysql_num_rows($resultSet)){
$newsArray = array();

echo '<ul>' . PHP_EOL;                                           

while ($newsResult = mysql_fetch_array($resultSet)){ 
    $newDate =  $newsResult['date'] ;   
    $timePeriod = date('F  Y ',strtotime($newDate));
    $timePeriodY = date('Y',strtotime($timePeriod));
    $timePeriodM = date('F',strtotime($timePeriod));                                          


    $newsArray[$timePeriodY][$timePeriod][] = $newsResult;                                      
}                                         

//by year
foreach ($newsArray as $timePeriodY => $newsItems){
    echo '<li><strong>' . $timePeriodY . '</strong>' . PHP_EOL;  
    echo '<ul>' . PHP_EOL;

    //by month
    foreach ($newsItems as $timePeriod => $items){
        echo '<li><strong>' . $timePeriod . '</strong>' . PHP_EOL;  
        echo '<ul>' . PHP_EOL;                                

        //news items
        foreach ($items as $item){
            echo '<li>';
            echo '<a href="'.$wwwUrl.'press-releases/'.$item["id"].'/'.$item["titlename"].'.php">'.$item["titlename"].'</a>';
            echo '</li>' . PHP_EOL;
        }     

        //end by month
        echo '</ul>' . PHP_EOL; 
        echo '</li>' . PHP_EOL;                   
    }

    //end by year
    echo '</ul>' . PHP_EOL; 
    echo '</li>' . PHP_EOL;                   
}

echo '<li>&nbsp;</li>' . PHP_EOL;   
echo '</ul>' . PHP_EOL; 
} else {
echo 'No Blog Found';
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39767556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档