mysql_fetch_array - 分组结果

时间:2012-02-22 09:58:11

标签: php mysql

CMS模型:

public static function getSiteLinks($page)
{
    $query="SELECT * FROM cms_links WHERE page = '{$page}'";

    return mysql_query($query);
}

cms_links表格如下:id, page, section_sub, title, link

在我看来,我有:

$links=CMS::getSiteLinks('home-page');

while($link = mysql_fetch_array($links))
{
    echo $link['section_sub'];
    echo $link['title'];
}

字段section_sub定义链接所属的“组”。我想输出上述查询的结果,按section_sub分组。因此,例如在每个组之后,插入换行符并开始下一个组。

2 个答案:

答案 0 :(得分:0)

首先将ORDER BY section_sub添加到您的查询中。

现在,在循环之前,添加$currsection = null;

在循环中,你应该做的第一件事是:

if( $link['section_sub'] != $currsection) {
    $currsection = $link['section_sub'];
    echo "<hr /><h2>".$link['section_sub']."</h2>";
}

完成。

答案 1 :(得分:0)

试试这个:

按section_sub:

排列结果
$query="SELECT * FROM cms_links WHERE page = '{$page}' ORDER BY section_sub";
...
$prevsub = '';
while($link = mysql_fetch_array($links))
{
    echo $link['section_sub'];
    echo $link['title'];

    if($prevsub != '' && $prevsub != $link['section_sub'])
        echo '<br/>';
    $prevsub =  $link['section_sub'];
}