![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 50 Pomógł: 1 Dołączył: 28.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Hej.
Mam tabelę składającą się z username i points. Zastanawiam się czy jest możliwe (póki co nie wychodzi mi to), aby za pomocą jednego zapytania i bez udziału PHP wyciągnąć z bazy mój wynik i po dwa wyniki lepsze i gorsze ode mnie + dokleić pozycję w rankingu ogólnym na podstawie punktów. Ale w momencie kiedy np jestem pierwszy to zamiast dostać tylko 2 wyniki z tyłu dostaje 4 - tak by zawsze było dopełnienie w sumie do 5 wyników. I podobnie w przypadku, gdy jestem ostatni. I ostatnia zasada działania - osoby o tym samym wyniku są na tym samym miejscu. Czyli np coś takiego: rank | username | points ----------------------------- 50 | besciak | 100 51 | ktoś #1 | 90 52 | JA | 85 52 | ktoś #3 | 85 53 | ktoś #4 | 10 a w przypadku kiedy jestem ostatni: rank | username | points ----------------------------- 50 | besciak | 100 51 | ktoś #1 | 50 52 | ktoś #2 | 40 53 | ktoś #3 | 20 54 | JA | 10 Mam nadzieje, że zbytnio nie zachachmęciłem =) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 559 Pomógł: 93 Dołączył: 4.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
jest możliwe, ale nie wiem czy wyjdzie optymalnie.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 50 Pomógł: 1 Dołączył: 28.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
a mógłbyś zdradzić tajemnicę jakby miało to wygladać w wersji czystego mysql i masz może jakiś pomysł odnośnie optymalnego wyjścia?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 559 Pomógł: 93 Dołączył: 4.03.2008 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Nie ma optymalnego wyjścia, bo trzeba użyć podzapytań.
Tworzysz zapytania z UNION i sprawdzasz IF czy jesteś pierwszy czy drugi czy trzeci. Nie stworzę zapytania bo zrobię robotę za Ciebie ![]() Możesz zrobić sobie z użyciem PHP prostsze rozwiązanie: 1 zapytanie pobiera ciebie i miejsce na którym jesteś w zależności od miejsca robisz kolejne zapytanie/a i dobierasz pozostałe rekordy Ten post edytował buliq 9.07.2013, 13:04:13 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.07.2025 - 12:54 |