No ha chiesto l'arbitrarietàma non ti basta mettere un ORDER BY RAND() nella query?
Certo che devi crearti la risorsa altrimenti cosa cicli?Quindi non devo usare $result = mysql_query( "SELECT * FROM ec... questo codice non và bene giusto?
(la risorsa è $result)
Comunque mi sembra chiaro che non hai capito bene la mia soluzione:
$arrComp=array('c'=>0,'s'=>1,'a'=>2,'b'=>3,'k'=>4) ;
//è l'array di comparazione per fare l'ordinamento
//ossia l'ordinamento finale sarà come impostato in questo array
$daOrdinare=array();
while ($row = mysql_fetch_array ($result) )
{
array_push($daOrdinare,$row[0]);
}
// qui cicli il recordset e butti tutto dentro a un array che ho chiamato daOrdinare
function cmp($a, $b)
{
$arrComp=array('c'=>0,'s'=>1,'a'=>2,'b'=>3,'k'=>4) ;
if (($arrComp[$a]) == ($arrComp[$b])) {
return 0;
}
return (($arrComp[$a]) < ($arrComp[$b])) ? -1 : 1;
}
usort($daOrdinare, "cmp");
//con questo blocco fai l'ordinamento vero e proprio dell'array appena creato
//(chiamato daOrdinare) in base all'ordine determinato nell'array arrComp
foreach ($daOrdinare as $key => $value) {
echo "
$key -> $value\n";
}
//qui hai la stampa delle coppie chiave valore dell'array daOrdinare dopo l'usort