Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak znaleść drugi najmniejszy wyraz w tablicy?
Forum PHP.pl > Forum > PHP
maxsolee
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
nevt
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
maxsolee
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?
tikky
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;
maxsolee
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
b_chmura
  1. SELECT * FROM (SELECT * FROM tabela ORDER BY DESC wynik LIMIT 2 ) AS tmp ORDER BY id;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.