Ciao a tutti
Ho come il sospetto (IO=
) di sbagliare l'approccio durante la formattazione & stampa a video dei risultati delle query quando utilizzo le "join":
ho due Tabelle:
1 - Tabella cat_vini
| id | nome_cat |
--------------------------
| 1 | chianti |
| 2 | montepulciano |
2 - Tabella vini
| id | ref_cat_vini | etichetta |
-------------------------
| 1 | 1 | chianti1 |
| 2 | 2 | montepulciano1 |
| 3 | 1 | chianti2 |
utilizzo il codice:
Codice PHP:
$query='
SELECT *
,a.id as idcategoria
,b.id as idprodotto
FROM cat_vini a
LEFT JOIN vini b ON b.ref_cat_vini=a.id
';
$res=mysql_query($query) or die("errore query1:
".mysql_error());
while($riga=mysql_fetch_assoc($res)){
$idcategoria=$riga['idcategoria'];
$idprodotto=$riga['idprodotto'];
$risu[$idcategoria]['ncat']=$riga['nome_cat'];
$risu[$idcategoria]['comp'][$idprodotto]['n_etichetta']=$riga['etichetta'];
}
foreach($risu as $k => $v){
echo'<h1>'.$v['ncat'].'</h1>';
foreach($v['comp'] as $kk => $vv){
echo'<span>'.$vv['n_etichetta'].'</span>
';
}
}
per ottenere una visualizzazione del tipo:
Codice PHP:
cat1
prodotto 0
prodotto n
cat2
prodotto 0
prodotto n
i miei dubbi sono:
1 - E' possibile utilizzare un'unica query che mi evita la creazione di un array ad hoc per raggruppare per categoria?
2 - E' meglio utilizzare una query per ogni categoria, se prevedo che le categorie saranno poche, in termini di risorse utilizzate?
3 - Ma il foreach è davvero così sconsigliabile come si dice in giro (specie un foreach indentato)?
grazie in anticipo per i consigli