mysql_fetch_arrays – risultati di gruppo

Modello CMS:

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

cms_links tabella cms_links ha il seguente: id, page, section_sub, title, link

Dal mio punto di vista ho:

 $links=CMS::getSiteLinks('home-page'); while($link = mysql_fetch_arrays($links)) { echo $link['section_sub']; echo $link['title']; } 

Il field section_sub definisce a quale "gruppo" appartiene il collegamento. Voglio produrre i risultati della query sopra, raggruppati per section_sub . Quindi, ad esempio dopo each gruppo, viene inserita un'interruzione di row e inizia il gruppo successivo.

Per prima cosa aggiungi ORDER BY section_sub alla tua query.

Ora, prima del ciclo, aggiungi $currsection = null; .

All'interno del ciclo, la prima cosa che dovresti fare è:

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

Fatto.

Prova questo:

Disporre il risultato per section_sub:

 $query="SELECT * FROM cms_links WHERE page = '{$page}' ORDER BY section_sub"; ... $prevsub = ''; while($link = mysql_fetch_arrays($links)) { echo $link['section_sub']; echo $link['title']; if($prevsub != '' && $prevsub != $link['section_sub']) echo '<br/>'; $prevsub = $link['section_sub']; }