Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak znaleść drugi najmniejszy wyraz w tablicy?
maxsolee
post 25.11.2007, 13:38:31
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.11.2007

Ostrzeżenie: (0%)
-----


W bazie mysql przechowuje wyniki 10 kolejnych rozgrywek kilku uzytkowników.
Dane wyświetlane są w tabeli. Chciałbym, żeby 2 najsłabsze wyniki każdego zawodnika zaznaczone byly innym kolorem.
Pierwszy można znaleść funkcją min(), problem mam z nastepnym wynikiem.
Zeby było jaśniej zamieszcze linka do tej tabeli:
http://www.dart.com.pl/ranking.php
Ale żeby było trudniej smile.gif wyników nie można posortować, ponieważ powinny wyświetlać się w kolejności w jakiej zostały zapisane do bazy...
Męcze się z tym kilka dni i zaczynam bać się o swoje zdrowie psychiczne smile.gif
Jeśli ktoś ma jakies pomysły to z góry dziękuję
pozdrawiam
Go to the top of the page
+Quote Post
nevt
post 25.11.2007, 13:57:28
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


zakładam, że w tabeli `tabela` masz pola: `'id' - wedlug którego ma być posortowany rezultat zapytania, `wynik` - według którego trzeba wyszukać dwa najniższe wyniki. wtedy powinno ci pomóc coś takiego:
  1. SELECT * FROM (SELECT * FROM tabela ORDER BY wynik LIMIT 2 ) AS tmp ORDER BY id;

powodzenia


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
maxsolee
post 25.11.2007, 14:51:17
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.11.2007

Ostrzeżenie: (0%)
-----


Dzięki, prawie działa...
Z tym że sortuje wniki "pionowo", tzn wybiera najgorsze wyniki ze wszystkich zawodników, a ja bym chciał żeby każdy wiersz tabeli sortowal osobno - dla kazdego zawodnika wybierał dwa najgorsze wyniki. Można to zrobić równie prosto?
Go to the top of the page
+Quote Post
tikky
post 25.11.2007, 15:24:02
Post #4





Grupa: Zarejestrowani
Postów: 112
Pomógł: 1
Dołączył: 2.10.2007

Ostrzeżenie: (0%)
-----


No to pewnie musiałbyś dodać jeszcze warunek z użytkownikiem:

CODE
SELECT * FROM (SELECT * FROM tabela WHERE id_usera=username ORDER BY wynik LIMIT 2 ) AS tmp ORDER BY id;


--------------------
Go to the top of the page
+Quote Post
maxsolee
post 25.11.2007, 20:54:01
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.11.2007

Ostrzeżenie: (0%)
-----


OK, nie pomogło, ale dzięki - nie wiedziałem że w ogóle można formułować w ten sposób zapytania...
Zrobilem to w końcu po swojemu, może troche na około ale działa.
Jeśli ktoś będzie miał w przyszłoścui taki problem to na priva i wyśle źródełko
Go to the top of the page
+Quote Post
b_chmura
post 25.11.2007, 22:12:54
Post #6





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

Ostrzeżenie: (0%)
-----


  1. SELECT * FROM (SELECT * FROM tabela ORDER BY DESC wynik LIMIT 2 ) AS tmp ORDER BY id;
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 8.07.2025 - 04:14