beh senza sapere quello che vuoi fare e senza sapere la quantità di dati con cui hai a che fare posso buttarla li:
invece di fare delle query in cicli while innestati (filtrandole a monte) puoi effettuare le 3 query (senza filtro) e poi eseguire i while.
aumenterai il tempo che php ci mette a gestire il tutto però invece di 30 query (o più) ne avrai sempre 3.
es:
non è una soluzione migliore anche perchè dipende molto dal numero di dati con cui avrai a che fare e dal tempo di esecuzione della singola query...bisogna valutare se ti conviene più allungare i tempi di php (xkè i while saranno su più dati visto che non ci sono filtri a monte) oppure fare una marea di querycodice:$query1 = xxx; $query2 = xxx; $query3 = xxx; while ( $riga1 = xx ) { ... while ( $riga2 = yy ) { ... while ( $riga3 = zz ) { ... // costruisci il tuo array ... } } }