Newsgroup: it.comp.www.php
Titolo: Un output con un certo ordine

Partendo dal codice postato in basso, come posso ottenere un output con 
questo ordine preciso:
Ricette
 antipasti (5)
 primi (3)
 secondi (2)
 contorni (4)
 dolci (1)
 bevande (3)
<p class='vspace sidehead'><a class='razlink' 
href='/ricette.php'>Ricette</a></p>
<?php
$query7 = "SELECT DISTINCT categoria FROM ricette";
$result7 = mysql_query($query7, $db);
$row7 = mysql_fetch_assoc($result7);
?>
<ul>
<?php do { ?>
<li><a href='<? echo "/ricette.php?categoria=".$row7['categoria']; ?>'>
<?php
$query8 = "SELECT * FROM ricette WHERE 
categoria='".$row7['categoria']."'";
$result8 = mysql_query($query8, $db);
$num8 = mysql_num_rows($result8);
echo $row7['categoria']."</a><span id='razinfo'> (".$num8.")</span>"; 
?><br>
</li>
<?php } while ($row7 = mysql_fetch_assoc($result7)); ?>
</ul>
-- 
ho visto la password! ho visto la password! sono sei asterischi!
(la mia ragazza, esperta di sniffing)

  bevande (3)
Io utilizzerei la funzione di aggregazione COUNT di SQL, in questo modo:
<ul>
<?
$query = "SELECT categoria, COUNT(*) AS num_ricette FROM ricette GROUP
	  BY categoria";
$res = mysql_query($query, $db);
while($row = mysql_fetch_assoc($res)) {
	$c = $row['categoria'];
	$n = $row['num_ricette'];
	echo "<li><a href = \"ricette.php?categoria=$c\">$c</a>
              <span id = 'razinfo'>($n)</span></li>";
}
?>
</ul>
Il codice è totalmente NON testato.
HTH,
-- 
[ Andrea Spadaccini - a.k.a. Lupino - from Catania - ICQ #: 91528290 ]
[ GPG ID: 5D41ABF0 - key on keyservers - Gentoo GNU / Linux - 2.6.18 ]
[ Linux Registered User 313388 - @: a.spadaccini(at)
catania.linux.it
 ]
[             I am not young enough to know everything.              ]

 modo:
molto utile COUNT, ma non mi risolve il problema dell'ordine... mi 
dovrebbe dare prima gli antipasti, poi i primi, poi i secondi e così 
via...
grazie per l'aiuto
-- 
-ciao       Raziel       #ICQ 314405452
[HT] Real Quilian (851574) - Italia - VII.481
http://razielweb.altervista.org

 via...
Questo ordine esiste, da qualche parte nel DB?
Male che vada, metti tutti i dati un un array associativo e poi li
estrai secondo l'ordine che preferisci, ma è poco flessibile.
Esempio:
<ul>
<?
$query = "SELECT categoria, COUNT(*) AS num_ricette FROM ricette GROUP
	  BY categoria";
$res = mysql_query($query, $db);
$ricette_n = array();
while($row = mysql_fetch_assoc($res))
	$ricette_n[$row['categoria']] = $row['num_ricette']:
$categorie = array('antipasti', 'primi', 'secondi', 'contorni', 'dolci',
	'bevande');
for($categorie as $cat)
	echo "<li><a href = \"ricette.php?categoria=$cat\">$c</a>
              <span id = 'razinfo'>(" . $ricette_n[$cat] .
	      ")</span></li>";
?>  
</ul>
Al solito, non testato ma dovrebbe fungere.
HTH,
-- 
[ Andrea Spadaccini - a.k.a. Lupino - from Catania - ICQ #: 91528290 ]
[ GPG ID: 5D41ABF0 - key on keyservers - Gentoo GNU / Linux - 2.6.18 ]
[ Linux Registered User 313388 - @: a.spadaccini(at)
catania.linux.it
 ]
[      Hard work has a future payoff. - Laziness pays off now.       ]

 	$ricette_n[$row['categoria']] = $row['num_ricette']:
Parse error: syntax error, unexpected ':'
anche con il ; mi da errore


 anche con il ; mi da errore
Anche con il ; al posto del :? Che errore?
(Avevo scritto che il codice non era testato... :P)
-- 
[ Andrea Spadaccini - a.k.a. Lupino - from Catania - ICQ #: 91528290 ]
[ GPG ID: 5D41ABF0 - key on keyservers - Gentoo GNU / Linux - 2.6.18 ]
[ Linux Registered User 313388 - @: a.spadaccini(at)
catania.linux.it
 ]
[      Never interrupt your enemy when he is making a mistake.       ]

 (Avevo scritto che il codice non era testato... :P)
Parse error: syntax error, unexpected T_AS, expecting ';' a questa 
riga:
for($categorie as $cat)


 for($categorie as $cat)
Ok, al posto del for ci va un foreach (scusa ma sto giocando col
python, quindi confondo un po' le due sintassi).
-- 
[ Andrea Spadaccini - a.k.a. Lupino - from Catania - ICQ #: 91528290 ]
[ GPG ID: 5D41ABF0 - key on keyservers - Gentoo GNU / Linux - 2.6.18 ]
[ Linux Registered User 313388 - @: a.spadaccini(at)
catania.linux.it
 ]
[            Error, no keyboard -- press F1 to continue.             ]


ROTFEL

 python, quindi confondo un po' le due sintassi).
ok, perfetto! :) grazie


 
[SUPER OT]
Ma ... stra iper mega looooooooooooooool la tua firma è fenomenaleeeeeeeeeee
loooooooooooooooooooooooooooool
[FINE OT]

 questo ordine preciso:
aggiungi una tabella con l'elenco delle categorie e ci metti un campo 
che determina l'ordine.

 che determina l'ordine.
potevo fare anche così... però forse così mysql viene impegnato 
maggiormente, non so... ho l'impressione che meno tabelle ci siano e 
meglio è, sbaglio vero? :)


 antipasti (5)
 > ...
Definisci la categoria come un enum dentro il DB, con le categorie 
nell'ordine giusto, e ordina per categoria.
Bye.