SQL Count为Accordion Panel分组行

时间:2017-07-07 20:32:46

标签: sql pdo count group-by

我有一个包含两行的博客表: 唯一重要的列是:

if_blog   data_blog    titulo
1         2017/07/07   title 1
2         2017/07/07   title 2

我创建了一个按日期排序的菜单,当您点击该日期时,它会删除相关帖子。

问题是我的查询只显示1个标题(可能是因为GROUP BY data_blog。

我使用的查询是:

$datasb = $db->query("SELECT * FROM blog GROUP BY data_blog");
$datasb->execute();
while($rows_datas = $datasb->fetch(PDO::FETCH_ASSOC)){
  echo '
       <div class="panel-heading">
          <h4 class="panel-title">
          <a data-toggle="collapse" data-parent="#accordion" href="#'.$rows_datas['id_blog'].'">'.$rows_datas['data_blog'].'</a>
          </h4>
       </div>
       <div id="'.$rows_datas['id_blog'].'" class="panel-collapse collapse">
          <div class="panel-body">'.$rows_datas['titulo'].'</div>
       </div>
        ';
}

这为我提供了链接 2017/0707 的正确结果,但只有一个子标题为title1。

如何获取给定日期的总行数?

1 个答案:

答案 0 :(得分:0)

解决了它,但我不知道这是否是最佳方式:

$datasb = $db->query("SELECT * FROM blog GROUP BY data_blog");
$datasb->execute();
   while($rows_datas = $datasb->fetch(PDO::FETCH_ASSOC)){
       echo '
           <div class="panel-heading">
             <h4 class="panel-title">
             <a data-toggle="collapse" data-parent="#accordion" href="#'.$rows_datas['id_blog'].'"> '.$rows_datas['data_blog'].'</a>
             </h4>
           </div>
           <div id="'.$rows_datas['id_blog'].'" class="panel-collapse collapse">
       ';
          $posts = $db->prepare("SELECT * FROM blog WHERE data_blog = ?");
          $posts->bindValue(1, $rows_datas['data_blog']);
          $posts->execute();
            while($rows_posts = $posts->fetch(PDO::FETCH_ASSOC)){
              echo '  
                    <div class="panel-body painel">
                       <a href="">'.$rows_posts['titulo'].'</a>
                    </div>
              ';
            }
      echo '</div>';        
      }