Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak znaleść drugi najmniejszy wyraz w tablicy?
maxsolee
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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
 
Start new topic
Odpowiedzi (1 - 5)
nevt
post
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
Go to the top of the page
+Quote Post
maxsolee
post
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
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
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
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 13:54