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