![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 9 Dołączył: 16.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Prowadzę serwer Counter Strike Kreedz, ale mniejsza z tym. Posiadam na nim plugin, który każde przejście mapy zapisuje do bazy. W jednym rekordzie znajduje się: czas przejścia, SteamID (identyfikator graczy z ORYGINALNĄ grą, niestety większość osób gra na piratach, także nie wskazuje to jednoznacznie na gracza), IP, nick i jeszcze inne parametry przejścia, które raczej nie będą tu potrzebne ![]() Planuję wyświetlać na stronce internetowej przy forum serwera prostą statystykę, czyli top15, ale nie czasów lecz graczy z najlepszymi czasami, co oznacza że każdy gracz może wystąpić w top15 TYLKO RAZ. Każdego gracza identyfikuje albo SteamID, albo IP, albo nick, to w zależności czy ma oryginalną wersję gry czy nie. Jeśli ma to przejmujemy się tylko SteamID, jeśli nie, to patrzymy na IP i nick. I tu się pojawia mój problem... jak wyciągnąć 15 najlepszych czasów tak żeby był unikalny albo SteamID albo ip i nick. Proszę o pomoc Delikatnie odświeżam, nie popędzam oczywiście nikogo, po prostu nie chcę żeby mój temat zaginął bez odpowiedzi ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 319 Pomógł: 118 Dołączył: 26.11.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
-------------------- scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 6 Dołączył: 15.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
SELECT SteamID , min(`czas`) FROM `czasy` GROUP BY 1 ORDER BY 2 DESC
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 9 Dołączył: 16.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
hmm, widzę że nie do końca zadałem zrozumiale pytanie, może podam kilka przykładowych danych:
Kod SteamID IP nick czas STEAM_0:0:1213415 122.111.211.121 Gracz1 12212 STEAM_0:0:3113221 221.129.146.151 Gracz2 22155 STEAM_ID_LAN 221.229.189.199 Gracz3 10596 STEAM_ID_LAN 174.204.152.234 Gracz4 43012 STEAM_0:0:1213415 122.111.211.121 Gracz1 32212 STEAM_0:0:3113221 221.129.101.6 Gracz2 22155 STEAM_ID_LAN to jest właśnie 2ch graczy, którzy nie posiadają oryginalnego CSa (tzw. non-steamowcy) i ich muszę odróżniać za pomocą nicku/ip. graczy steamowych muszę odróżnić za pomocą SteamID. Podane przez Was rozwiązania spowodują, że Gracz3 i Gracz4 zostaną potraktowani jako jeden gracz. Czy jest sposób grupowania wyników jeśli dana kolumna nie jest równa jakiejś wartości? (może być NOT NULL, bo zmiana STEAM_ID_LAN na null to nie problem) a może istnieje sposób na posortowanie wyników dwóch zapytań oddzielonych średnikiem? //edycja Problem rozwiązany, nie średnik a UNION ![]() ![]() //edit2 Pojawił się jednak jeszcze jeden problem. Jak sformułować zapytanie, żeby uzyskać z niego: wszystkie czasy danego gracza oraz które miejsce w rankingu zajmuje (na podstawie najlepszego czasu)? Ze zrobieniem tego osobno nie byłoby problemu (znaleźć wszystkie czasy gracza a następnie policzyć countem wszystkie czasy w bazie, które są mniejsze od podanego, czyli 2 zapytania), ale czy da się to połączyć w jedno zapytanie? Ten post edytował GwynBleidD 5.01.2011, 12:04:56 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 14:58 |