Codice PHP:
<?php
// Esegui la query
$sql = "SELECT categorie.id AS cat_id,
categoria,
sottocategorie.id AS sottocat_id,
sottocategoria
FROM categorie
LEFT JOIN sottocategorie
ON categorie.id = sottocategorie.id_categoria";
$result = mysql_query($sql);
// Crei un array in cui mettere la struttura dei dati
// che dopo stamperai - $data e' un array multidimensionale
// puoi vedere la struttura mettendo un print_r($data)
// dopo il while()
$data = array();
while ( $record = mysql_fetch_assoc($result) ) {
// gli indici principali sono i nomi delle categorie
// il primo elemento e' l'id
$data[$record['categoria']]['id'] = $record['cat_id'];
// se ci sono sottocategorie, crei un altro array e lo
// aggiungi al principale
if ( !empty($record['sottocat_id']) ) {
$temp = array(
'id' => $record['sottocat_id'],
'nome' => $record['sottocategoria'],
);
$data[$record['categoria']]['sottocategorie'][] = $temp;
}
}
?>
<ul>
<?php foreach ( $data as $key => $val ): ?>
[*]
[<?php echo $val['id']; ?>] <?php echo $key; ?>
<?php if ( isset($val['sottocategorie']) ): ?>
<ul>
<?php foreach ( $val['sottocategorie'] as $sottocategoria ): ?>
[*][<?php echo $sottocategoria['id']; ?>] <?php echo $sottocategoria['nome']; ?>
<?php endforeach; ?>
[/list]
<?php endif; ?>
<?php endforeach; ?>[/list]