ja bih to malo drugacije:
PHP kôd:
$sql = "SELECT p.*, k.id AS kat_id, k.naziv AS kategorija
FROM forum_kategorije as k, forum_podforumi as p
WHERE kat=k.id";
$query = mysql_query($sql);
while($a=mysql_fetch_array($query))
$podaci[ $a['kategorija'] ][] = $a;
// a onda glavna fora, pokupimo kategorije bez posebnog upita
$kategorije = array_keys($podaci);
// sortiramokategorije abecedno
sort($kategorije);
$smarty->assign('podaci', $podaci);
$smarty->assign('kategorije', $kategorije);
i onda smarty moze ovako:
HTML kôd:
{foreach from=$kategorije item=sta}
{assign var='podaci_kat' value=$podaci.$sta}
<table width="100%" border="0" cellspacing="2" cellpadding="3">
<tr>
<td colspan="5">Kategorija: {$sta}</td>
</tr>
{section loop=$podaci_kat name=cnt}
<tr>
<td width="5%" height="23" bgcolor="#E5E5E5">Ovdje slika </td>
<td width="43%" bgcolor="#E5E5E5">{$podaci_kat[cnt].naziv}<br />
{$podaci_kat[cnt].opis}</td>
<td width="8%" bgcolor="#E5E5E5" align="center">{$podaci_kat[cnt].tema}</td>
{if $podaci_kat[cnt].postova}
<td width="10%" bgcolor="#E5E5E5" align="center">{$podaci_kat[cnt].postova}</td>
{else}
<td width="34%" bgcolor="#E5E5E5" align="center">Trenutno nema postova.</td>
{/if}
</tr>
{sectionelse}
<tr>
<td colspan="5">Trenutno nema podforuma</td>
</tr>
{/section}
</table>
{/foreach}
ovoje kucano iz glave verovatno ima gresaka, ali snaci ces se vec... koristi {debug} ako ti nje jasno kako izgledaju podaci koji se prosledjuju Smartiju