Pogledajte određenu poruku
Staro 25. 09. 2007.   #2
McChoban
član
Certified
 
Datum učlanjenja: 21.06.2005
Lokacija: Beograd
Poruke: 60
Hvala: 3
4 "Hvala" u 1 poruci
McChoban is on a distinguished road
Default

Nisam toliki znalac za baze, mozda je i moguce, ali moje resenje bi bilo da pokupim podatke pa ih sortiram naknadno.

Primeni neki sort algoritam, ali mu stavi komparator koji ce da koristi string za poredjenje
tipa, ako je php, postoji funkcija usort();


PHP kôd:

// prvo napravimo komparator, koji vraca 1 ako je prvi veci od drugog, -1 ako je manji, i 0 ako su jednaki.

function komparator($str1$str2) {
if (
$str1 == $str2) {
return 
0;
// da skratimo posao, prvo provedimo dal' su jednaki

$cmp "aаbбvвgгdдđђ...."// itd - string koji sadrzi poredjana cir. i lat. slova.

$len1 strlen($str1); $len2 strlen($str2);
$len = ($len1 <= $len2) ? $len1 $len2// duzina petlje jednaka duzini kraceg stringa

for ($i 0$i $len$i++) {
$chr1 strtolower($str1[$i]); // uzimamo i-ti karakter stringa
$chr2 strtolower($str2[$i]);
if (
strpos($cmp$chr1) > strpos($cmpchr2)) {
return 
1;
} else if (
strpos($cmp$chr1) < strpos($cmpchr2)) {
return -
1;

}

// ako su stringovi identicni do duzine kraceg, onda smo se nasli ovde

if ($len1 $len2) {
return 
1;
} else if (
$len2 $len1) {
return -
1;
}

// ako smo se nasli ovde, onda su identicni i jednakih duzina
// pa posto smo to proverili na pocetku, to znaci da nikako ne bi trebalo ovde da se nadjemo :)

return 0;
}

// sad pozovemo usort na nizu koji sortiramo, i prosledimo naziv komparatora kao argument

usort($array"komparator"); 
U slucaju jave je slicno, imas Collections.sort() i napravis mu comparator, slican ovom iz php-a samo se malo drugacije operise sa stringovima.

Naravno ako neko ima SQL-only resenje, bio bih odusevljen da ga vidim
McChoban je offline   Odgovorite uz citat