首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按组分页

按组分页
EN

Stack Overflow用户
提问于 2013-10-19 10:37:58
回答 2查看 1K关注 0票数 0

我在我的MySQL表中有一个记录,类似于:

 /T1582-1995商业商品的商品商品、金融、商业、金融、商业、金融等行业的商品、金融、金融等行业的产品、商品、金融等

1

2

3

4

5

6

我想把它展示在

2013-01-31

一个

B

2013-01-30

C

D

2013-01-29

E

F

我可以按组显示上述情况,但不能按组添加分页。

如果有人能帮我如何在组中添加分页。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-19 12:23:21

你可以这样做:

代码语言:javascript
复制
while( $row = $query_prepared->fetch( PDO::FETCH_ASSOC ) )
{
    if( $date <> $row['postdate'] )
    {
        echo '<br>' ,$row['postdate'];
    }

    $date = $row['postdate'];

    echo '<br>' ,$row['Postcontent'];
}

不,不要将GROUP BY放在SQL中,而是使用ORDER BY postdate DESC或ASC。

这里有一个仅仅是为了理解的例子:

代码语言:javascript
复制
$testData = array
(
    array('1','A','2013-01-31'),
    array('2','B','2013-01-31'),
    array('3','C','2013-01-30'),
    array('4','D','2013-01-30'),
    array('5','E','2013-01-29'),
    array('6','F','2013-01-29')
);

$date = '';
foreach( $testData as $data )
{
    $row = array();
    list( $row['d'] ,$row['Postcontent'] ,$row['postdate'] ) = $data;

    if( $date <> $row['postdate'] )
    {
        echo '<br>' ,$row['postdate'];
    }

    $date = $row['postdate'];

    echo '<br>' ,$row['Postcontent'];
}

这将产生以下结果:

代码语言:javascript
复制
2013-01-31
A
B
2013-01-30
C
D
2013-01-29
E
F
票数 0
EN

Stack Overflow用户

发布于 2013-10-19 13:27:57

那这个呢?

确保在后期(postdata,Postcontent)建立索引,以获得覆盖索引。

注意:有些人会认为这是错误的,因为您现在用SQL格式化(),但是使用这种方法可以获得更干净的客户端代码

运行此查询。

代码语言:javascript
复制
SELECT
   postdate 
 , GROUP_CONCAT(Postcontent SEPARATOR '<br />') 'postcontent_formatted'

FROM 
 your_table

GROUP BY
  postdate DESC

PHP代码

代码语言:javascript
复制
<?php

     while( $row = $query_prepared->fetch( PDO::FETCH_ASSOC ) ) {
        echo $row['postdate'] . '<br />';
        echo $row['postcontent_html_formatted'] . '<br />';
     }

?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19465101

复制
相关文章

相似问题

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