prima cosa: $resultsi conterra solo i valori dell'ultima query perché parti sempre da 0 ... dunque il tuo codice così com'è non funzionerà correttamente ...
Codice PHP:
<?php
$result = mysql_query("SELECT id_capitolo, nome_capitolo FROM capitolo o", $connessione);
$results = array();
while($r = mysql_fetch_array($result)){
$results[] = array("id"=> $r["id_capitolo"],"nome"=> $r["nome_capitolo"]);
$resulti = mysql_query("SELECT titolo_menu FROM menu WHERE cod_capitolo='{$r['id_capitolo']}'", $connessione);
$resultsi = array();
while($o = mysql_fetch_array($resulti)){
$resultsi[] = array("idi"=> $o["id_menu"],"nomei"=> $o["titolo_menu"]);
}
$results[] = array("id" => $r["id_capitolo"], "nome" => $r["nome_capitolo"], "menu" => $resultsi);
}
$smarty->assign('menu', $results);
?>
e poi in smarty basta che ti leggi la doc del foreach (http://smarty.php.net/manual/en/lang...on.foreach.php) e potrai ottenere quello che ti serve ma potrebbe esser qualcosa come questo:
codice:
<ul>
{foreach name=capitoli item=cap from=$menu}
[*]{$cap.nome}
<ul>
{foreach name=menu item=item from=$cap.menu}
[*]{$item.nomei}
{/foreach}
[/list]
{/foreach}[/list]