Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zestawienie punktowe z dla roznych dat z jednej tabeli, Jak to ugryźć
Diabl0
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 1
Dołączył: 25.03.2006

Ostrzeżenie: (0%)
-----


Tabela:
  1. +-----------+--------------+------+-----+-------------------+-------+
  2. | FIELD | Type | NULL | KEY | DEFAULT | Extra |
  3. +-----------+--------------+------+-----+-------------------+-------+
  4. | tp_date | timestamp | NO | | CURRENT_TIMESTAMP | |
  5. | tp_pos | int(11) | NO | | NULL | |
  6. | tp_tag | varchar(32) | YES | | NULL | |
  7. | tp_player | varchar(255) | NO | | NULL | |
  8. | tp_points | int(11) | NO | | NULL | |
  9. +-----------+--------------+------+-----+-------------------+-------+


Przykładowe dane:

  1. +---------------------+--------+--------+-----------+-----------+
  2. | tp_date | tp_pos | tp_tag | tp_player | tp_points |
  3. +---------------------+--------+--------+-----------+-----------+
  4. | 2006-12-23 11:35:03 | 94 | [AMBA] | FuTuRe | 135052 |
  5. | 2006-12-19 08:35:06 | 87 | [AMBA] | FuTuRe | 135052 |
  6. | 2006-12-08 20:35:08 | 77 | [AMBA] | FuTuRe | 135052 |
  7. | 2006-12-08 14:35:03 | 77 | [AMBA] | FuTuRe | 135052 |
  8. | 2006-12-04 11:45:41 | 52 | [AMBA] | FuTuRe | 150774 |
  9. | 2006-11-28 23:59:15 | 59 | [AMBA] | FuTuRe | 135268 |
  10. | 2006-11-28 23:35:03 | 59 | [AMBA] | FuTuRe | 135268 |
  11. | 2006-11-19 14:56:09 | 63 | [AMBA] | FuTuRe | 122831 |
  12. | 2006-12-26 11:35:03 | 80 | [AMBA] | Flakon | 148148 |
  13. | 2006-12-10 05:35:06 | 76 | [AMBA] | Flakon | 138070 |
  14. | 2006-12-09 20:35:04 | 76 | [AMBA] | Flakon | 138070 |
  15. | 2006-12-30 17:35:04 | 17 | [AMBA] | Kartofel | 276466 |
  16. | 2006-12-27 17:35:04 | 9 | [AMBA] | Kartofel | 334539 |
  17. | 2006-12-26 20:35:02 | 10 | [AMBA] | Kartofel | 323416 |
  18. | 2006-12-20 02:35:03 | 10 | [AMBA] | Kartofel | 285830 |
  19. +---------------------+--------+--------+-----------+-----------+


Problemów jest kilka

1 - jak z takiej tabeli wygiągnąć listę graczy z danymi dla ostatniej daty:

  1. +---------------------+--------+--------+-----------+-----------+
  2. | tp_date | tp_pos | tp_tag | tp_player | tp_points |
  3. +---------------------+--------+--------+-----------+-----------+
  4. | 2006-12-23 11:35:03 | 94 | [AMBA] | FuTuRe | 135052 |
  5. | 2006-12-26 11:35:03 | 80 | [AMBA] | Flakon | 148148 |
  6. | 2006-12-30 17:35:04 | 17 | [AMBA] | Kartofel | 276466 |
  7. +---------------------+--------+--------+-----------+-----------+


2 - wyciągnięcie listy dla przedostatniej daty:

  1. +---------------------+--------+--------+-----------+-----------+
  2. | tp_date | tp_pos | tp_tag | tp_player | tp_points |
  3. +---------------------+--------+--------+-----------+-----------+
  4. | 2006-12-19 08:35:06 | 87 | [AMBA] | FuTuRe | 135052 |
  5. | 2006-12-10 05:35:06 | 76 | [AMBA] | Flakon | 138070 |
  6. | 2006-12-27 17:35:04 | 9 | [AMBA] | Kartofel | 334539 |
  7. +---------------------+--------+--------+-----------+-----------+


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).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
bela
post
Post #2


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


1.
  1. ORDER date DESC

2.
  1. ORDER date DESC LIMIT 1, 1

3. wystarczy warunek, tu masz podpowiedz http://dev.mysql.com/doc/refman/5.0/en/dat...-functions.html
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: 25.08.2025 - 07:53