2012-02-22 69 views
0

CMS型号:mysql_fetch_array - 团体成绩

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分组。因此,例如在每个组之后,插入一个换行符并开始下一个组。

回答

0

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

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

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

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

完成。

+0

干杯伴侣。我如何将每个'section_sub'包含在DIV中? – GSTAR 2012-02-22 10:46:11

+0

'echo

' before the loop, '
'循环后,'
'当节改变时。 – 2012-02-22 10:53:21

+0

干杯。我遇到了麻烦 - 你能更新你的例子来说明这个吗? – GSTAR 2012-02-22 11:00:45

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']; 
}