ma perchè fai tutte queste query quando te ne basterebe una?

Codice PHP:
$query ="SELECT campo1,campo2 ecc.. ... ... ORDER BY nome";
$risultato=mysql_query($query);
$nomeAttuale="";
while(
$row=mysql_fetch_array($risultato)){
   if(
$nomeAttuale!=$row['nome']){
      echo 
"[b]".$row["nome"]."[/b]

"
;
      
$nomeAttuale=$row['nome];   
   }

   echo "$i ".$row["testo"]."

"; 
   $i++;

i dati saranno ordinati per nome, e con un if controlli se stai passando al nome successivo lo stampi, altrimente stampi solo il testo.

Se poi vuoi proprio fare 2 query almeno la seconda costruiscila dentro il ciclo e falla mirata sul campo (possibilmente un id) in modo da tirare fuori solo quello che ti serve.

Codice PHP:
$query ="SELECT campo1,campo2 ecc.. ... ... ORDER BY nome";
$risultato=mysql_query($query);

while(
$row=mysql_fetch_array($risultato)){

   
$query2=$query ="SELECT campo1,campo2 ecc.. ... ... WHERE idAutore='".$row['IdAutore']."'";
   
$risultato2=mysql_query($query2);
   while(
$row2=mysql_fetch_array($risultato2)){
      echo 
"$i ".$row2["testo"]."

"

      
$i++;
   }


Ovviamente la prima soluzione (una sola query) è decisamente la migliore