sul discorso query per ogni valore avrei più di un dubbio, per il resto invece ti conviene farne uno solo
$coppie = array();
// loop risultato query
$coppie[$id] = $valore;
// fine loop
a questo punto hai la funzione ksort che ordinerà in base all'id
ksort($coppie);
reset($coppie);
resetti il puntatore e poi prendi i valori con un while(list($id,) = each($coppie)){} o con un più semplice foreach($coppie as $id => $value){}
credo sia quello che cercavi ma rivaluta la query per ogni valore che se l'array ha più di pochi elementi diventa pesante per il server