Полета по големина на стойностите иии

meleto

Registered
Целта ми е да класирам ред от БД-то, чийто инт стойност е най-висока.

Например:
id num user
1 3 3
2 12 3
3 11 4
4 10 4


съответно искам освен да изведа най-високото число, сортирано по num, но и номера user

"SELECT user,MAX(num) as num FROM table WHERE user="neshto si" "


Пробвах и с
SELECT * FROM table WHERE user="neshto si" ORDER BY num DESC

като от тук вземам най-високата стойност с ORDER BY и на практика вземам най-горната.


Но ми е нужен и редът, който е втори по големина. Не само максималния. Същевременно да вземам инфото от целия ред и всички стойности по него.
 
SELECT * FROM table ORDER BY num DESC LIMIT 2

$q = mysql_query ....

while ($r = mysql_fetch_assoc($q) {

Извеждане на резултата ....

}

Първо ще ти изведе реда с най-голямо num, а след това следващия.
 
madmax3_ каза:
SELECT * FROM table ORDER BY num DESC LIMIT 2

$q = mysql_query ....

while ($r = mysql_fetch_assoc($q) {

Извеждане на резултата ....

}

Първо ще ти изведе реда с най-голямо num, а след това следващия.

По-скоро ми трябва да мога независимо да запиша първият и втория. Така мога да ги ползвам само в рамките на цикъла. И то само да ги изведе, но и без да мога да взема само първия или само втория резултат.
 
$result = array();

while ($r = mysql_fetch_assoc($q) {

$result[] = $r;

}

$result[0]['num'] --> най-голямото число;
$result[0]['user'] --> user name
.....

$result[1]['num'] --> следващото число;
$result[1]['user'] --> user name


Може да има проблем ако имаш две или повече еднакви стойности на num
 

Back
Горе