... la cosa non è cosi semplice come credi... perchè ti crea difficoltà nella stampa del menù con quel html.
Io lo risolverei così:
Codice PHP:
<?php
// al posto dello zero puoi mettere la id_categoria di default
$id_sub_categoria = isset($_GET['id']) ? intval($_GET['id']) : 0;
$query = "
SELECT
sub_categoria.id_cat AS id_categoria,
sub_categoria.id AS id_subcategoria,
sub_categoria.titolo AS nome_subcategoria,
prodotti.id AS id_prodotto,
prodotti.nome AS nome_prodotto
FROM
prodotti
LEFT OUTER JOIN
sub_categoria
ON prodotti.id_sub = sub_categoria.id
WHERE
sub_categoria.id_cat ='".$id_sub_categoria."'";
$result = mysql_query($query) or die('Errore query: '.$query.'
'.mysql_error());
$array_dati = array();
while($row=mysql_fetch_array($result))
{
$array_dati[$row['nome_subcategoria']][] = array($row['id_prodotto'], $row['nome_prodotto']);
}
foreach($array_dati as $nome_subcategoria => $array_prodotti_subcategoria)
{
echo '
<ul id="menu">
[*]
[url="#"][b]' . ucfirst(strtolower($nome_subcategoria)) . '[/b] [/url]';
foreach($array_prodotti_subcategoria as $dati_prodotti)
{
list($id_prodotto, $nome_prodotto) = $dati_prodotti;
echo '
<ul>
[*][url="prodotto.php?id=' . $id_prodotto . '"]-' . ucfirst(strtolower($nome_prodotto)) . '[/url]
[/list]';
}
echo '
[/list]';
}
... questo è con un array tridimensionale...
... si poteva fare anche bidimensionale forse... ma la mia soluzione è + elegante