+-----------+--------------+------+-----+-------------------+-------+ | FIELD | Type | NULL | KEY | DEFAULT | Extra | +-----------+--------------+------+-----+-------------------+-------+ | tp_date | timestamp | NO | | CURRENT_TIMESTAMP | | | tp_pos | int(11) | NO | | NULL | | | tp_tag | varchar(32) | YES | | NULL | | | tp_player | varchar(255) | NO | | NULL | | | tp_points | int(11) | NO | | NULL | | +-----------+--------------+------+-----+-------------------+-------+
Przykładowe dane:
+---------------------+--------+--------+-----------+-----------+ | tp_date | tp_pos | tp_tag | tp_player | tp_points | +---------------------+--------+--------+-----------+-----------+ | 2006-12-23 11:35:03 | 94 | [AMBA] | FuTuRe | 135052 | | 2006-12-19 08:35:06 | 87 | [AMBA] | FuTuRe | 135052 | | 2006-12-08 20:35:08 | 77 | [AMBA] | FuTuRe | 135052 | | 2006-12-08 14:35:03 | 77 | [AMBA] | FuTuRe | 135052 | | 2006-12-04 11:45:41 | 52 | [AMBA] | FuTuRe | 150774 | | 2006-11-28 23:59:15 | 59 | [AMBA] | FuTuRe | 135268 | | 2006-11-28 23:35:03 | 59 | [AMBA] | FuTuRe | 135268 | | 2006-11-19 14:56:09 | 63 | [AMBA] | FuTuRe | 122831 | | 2006-12-26 11:35:03 | 80 | [AMBA] | Flakon | 148148 | | 2006-12-10 05:35:06 | 76 | [AMBA] | Flakon | 138070 | | 2006-12-09 20:35:04 | 76 | [AMBA] | Flakon | 138070 | | 2006-12-30 17:35:04 | 17 | [AMBA] | Kartofel | 276466 | | 2006-12-27 17:35:04 | 9 | [AMBA] | Kartofel | 334539 | | 2006-12-26 20:35:02 | 10 | [AMBA] | Kartofel | 323416 | | 2006-12-20 02:35:03 | 10 | [AMBA] | Kartofel | 285830 | +---------------------+--------+--------+-----------+-----------+
Problemów jest kilka
1 - jak z takiej tabeli wygiągnąć listę graczy z danymi dla ostatniej daty:
+---------------------+--------+--------+-----------+-----------+ | tp_date | tp_pos | tp_tag | tp_player | tp_points | +---------------------+--------+--------+-----------+-----------+ | 2006-12-23 11:35:03 | 94 | [AMBA] | FuTuRe | 135052 | | 2006-12-26 11:35:03 | 80 | [AMBA] | Flakon | 148148 | | 2006-12-30 17:35:04 | 17 | [AMBA] | Kartofel | 276466 | +---------------------+--------+--------+-----------+-----------+
2 - wyciągnięcie listy dla przedostatniej daty:
+---------------------+--------+--------+-----------+-----------+ | tp_date | tp_pos | tp_tag | tp_player | tp_points | +---------------------+--------+--------+-----------+-----------+ | 2006-12-19 08:35:06 | 87 | [AMBA] | FuTuRe | 135052 | | 2006-12-10 05:35:06 | 76 | [AMBA] | Flakon | 138070 | | 2006-12-27 17:35:04 | 9 | [AMBA] | Kartofel | 334539 | +---------------------+--------+--------+-----------+-----------+
3 - wyciągnięcie z listy zestawień dla danych sprzed 24h (coś w rodzaju MAX(tp_date) WHERE tp_date < DATE_SUB(tp_date, INTERVAL 1 DAY) )
4 - wyciągnięcie zestawienia punktowego w jednym zapytaniu:
| tp_tag | tp_player | tp_date | tp_points | tp_date_2 | tp_points_2 | zmiana_1 | tp_date_3 | tp_points_3 | zmiana_2 |
gdzie:
tp_date - data ostatniego sprawdzania
tp_points - ostatnia ilość punktów
tp_date2 - przedostatnia data sprawdzania
tp_points_2 - przedostatnia ilość punktów (czyli tp_date dla daty z tp_date2)
zmiana_1 - różnica między aktualną ilością punktów a poprzednią (tp_points - tp_points_2)
tp_date3 - wczorajsza ilość puntków (~aktualna data -24h)
tp_points_3 - wczorajsza ilość punktów (czyli tp_date dla daty z tp_date3)
zmiana_2 - różnica między aktualną ilością punktów a wczorajszą (tp_points - tp_points_3)
Ostatni problem nie wiem czy da się zrealizować w jednym zapytaniu i jestem gotowy na składanie danych w php, ale do tego potrzebne mi są pomysły jak rozwiązać problem 1, 2 i 3
Za wszelkie porady i pomoc z góry dziękuję, jak potrzeba więcej danych służę pomocą (nie chciałem tutaj wrzucać zbyt wiele danych aby nie zaśmiecać forum).