Hej
Jeg burder nok ikke hjælpe da vi jo er konkurrenter, men....
Her er lidt mere forklaring til usort(): usort kræver en sammenligings funktion for at fungere, det er noke den første 'fejl' du har lavet
Her kommer så noget kode du kan kigge på, jeg bruger selv noget i samme stil på
http://www.kostplanen.dk til at sortere indkøbslister.
-------------- Start med at klippe her -------------------
<?php
function niceprintarray($array)
{
print "<pre>";
print_r($array);
print "</pre>";
}
function cmp_array($a, $b)
{
return strcmp($a[1], $b[1]);
}
function cmp_array_1($a, $b)
{
if( $a[0] == $b[0])
return 0;
return ($a[0] < $b[0]) ? -1 : 1;
}
function cmp_single_asc($a, $b)
{
if( $a == $b)
return 0;
return ($a < $b) ? -1 : 1;
}
function cmp_single_desc($a, $b)
{
if( $a == $b)
return 0;
return ($a > $b) ? -1 : 1;
}
Print "Usort test<br>";
$elements = array("r","u","a","z","b","c","h","x");
// Sorter array med 1 element
usort($elements,"cmp_single_asc");
niceprintarray($elements);
usort($elements,"cmp_single_desc");
niceprintarray($elements);
// Sorter array med flere element
$elements_2 = array(array(1,"r") ,array(6,"u"),array(3,"a"),array(8,"z"),array(4,"b"),array(5,"c"),array(9,"h"),array(10,"x"));
// Sammenligningens funktionen kigger på 2' (0 er det første) element og sortere efter det
usort($elements_2,"cmp_array");
niceprintarray($elements_2);
// Sammenligningens funktionen kigger på 1' (0 er det første) element og sortere efter det
usort($elements_2,"cmp_array_1");
niceprintarray($elements_2);
?>
-------------- Slut med at klippe her -------------------
Som du kan se, så er det ikke så svært, når bare man ved det...
Det du kan gøre er:
1) at lave din SQL query om til at sortere for dig
2) samle alle records op og så bruge en af metoderne i den stump kode ovenfor, nu ved jeg ikke lige hvordan din $db er defineret (ADODB, eller PEAR ?), men..
while($db_row = $db->fetchRow())
{
$record_array[] = $db_row;
}
så skal du 'bare' ændre sammenlignings metoden til at sortere på der rette element nummer.
Vær opmærksom på at du skal bruge strcmp() hvis det er strenge du vil sortere.
Mvh
Steen