ho fatto circa un' oretta fa quello che tu stai cercando di fare.
premetto che le mie relazioni non sono su ID ma sui codici, e che query() è una mia funzione ...
detto questo il mio risultato lo pttengo a pieno
Codice PHP:
$end_var_testa=array();
$end_var_righe=array();
$var_testa_list=query("SELECT Codice,Descrizione FROM varianti_testa");
$x=0;
while ($res=mysql_fetch_array($var_testa_list,MYSQL_ASSOC))
{
//echo " var_testa_list[$n] = \"{$res['Codice']}|{$res['Descrizione']}\";\n";
$end_var_testa[$x]="{$res['Codice']}|{$res['Descrizione']}";
$var_righe_list=query("SELECT Codice,Descrizione,Varianti_testa_Cod FROM varianti_righe WHERE Varianti_testa_Cod = '{$res['Codice']}' ORDER BY Ordine ASC;");
$y=0;
while ($sub_res=mysql_fetch_array($var_righe_list,MYSQL_ASSOC))
{
$end_var_righe[$x][$y]="{$sub_res['Codice']}|{$sub_res['Descrizione']}";
$y++;
}
mysql_free_result($var_righe_list);
$x++;
}
mysql_free_result($var_testa_list);
io racchiudo i due risultati in 2 array e dopo me li giostro!!! spero che questo possa essere un buono spunto per te