![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 21.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam ranking do pewnej gry, i chciałbym aby gracze którzy nie grali 7dni na swojej postaci, nie byli pokazywani w rankingu. Obecnie napisałem sobie takie zapytanie w skrypcie:
Które blokuje wyświetlanie rekordów z cyferką 1 w kolumnie admin, i wyświetla rekordy od najważniejszych od win po exp. Jak w tym zapytaniu mogę zrobić aby nie wyświetlało także graczy którzy nie grali dłużej niż 7dni na swojej postaci? Oczywiście będzie to WHERE NOT LIKE '1' AND lastplay NOT LIKE <- No i dalej już nie wiem co mogę napisać. Czas kiedy ostatnio ktoś grał jest zapisany w tabeli lastplay w formie: 2011-05-21 10:12:03 Pozdrawiam. @EDIT: Zapewne będzie mi potrzebna funkcja tylko że co zrobić.. Dziękuję z góry za pomoc. Ten post edytował vazixable 21.05.2011, 11:15:54
Powód edycji: [batman]: To nie ma nic wspólnego z programowaniem obiektowym. Przenoszę do Przedszkola
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przejrzyj te funkcje:
http://dev.mysql.com/doc/refman/5.0/en/dat...-functions.html http://dev.mysql.com/doc/refman/5.0/en/dat...nction_datediff http://dev.mysql.com/doc/refman/5.0/en/dat...ml#function_now
-------------------- „Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
@WebCM:
Jest tylko jeden maluśki problem - Twoje rozwiązanie nie wykorzysta ewentualnego indeksu na polu. Poza tym NOW() jest funkcją niedeterministyczną czyli przy każdym wywołaniu wewnątrz SELECT jest pobierany aktualny czas. Tak więc lepiej nie używać Twojej metody. @vazixable: Skorzystaj z strtotime by obliczyć datę 7 dni wstecz: a następnie do swojego zapytania SQL dodaj:
PS: Czy przed NOT LIKE nie brakuje Ci nazwy kolumny? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 21.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
@WebCM: Jest tylko jeden maluśki problem - Twoje rozwiązanie nie wykorzysta ewentualnego indeksu na polu. Poza tym NOW() jest funkcją niedeterministyczną czyli przy każdym wywołaniu wewnątrz SELECT jest pobierany aktualny czas. Tak więc lepiej nie używać Twojej metody. @vazixable: Skorzystaj z strtotime by obliczyć datę 7 dni wstecz: a następnie do swojego zapytania SQL dodaj:
PS: Czy przed NOT LIKE nie brakuje Ci nazwy kolumny? Fakt, źle wyciągnąłem dane. W tym zapytaniu mam z 15 zablokowanych do wyświetlania kolumn, więc chciałem trochę wymazać żeby nie mylić nikomu zapytania ![]() EDIT: Mam mały problem, ponieważ nie działa >=, próbowałem ją wstawiać w różne miejsca, i na stronie poprostu nic nie było. Żadnych rekordów. Skrypt wygląda tak: $query = mysql_query("SELECT * FROM player WHERE last_play NOT LIKE '".$date."' AND admin NOT LIKE '1' ORDER BY level desc, exp desc, horse_level desc limit $nastepny_big_ranking_graczy,20"); ?> Działa ono ok bez >=, ponieważ rekord o tydzień wcześniej równo nie był pokazany dzięki temu. Nie działa jedynie blokada wyników starszych NIŻ. Można liczyć jeszcze na tę pomoc? Dziękuję z góry. Ten post edytował vazixable 21.05.2011, 18:57:53 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.04.2025 - 04:47 |