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