Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Jak skonstruować zapytanie do bazy
Forum PHP.pl > Forum > Przedszkole
abel1
Mam tabele z której wyciągam aktualnie zalogowanych
W tabeli jest kolumna "ostatnie_logowanie" tam zapisuje się data oraz godzina ostatniej akcji na stronie.
Jakie zapytanie dać do bazy żeby wyświetlić userów którzy byli w ciągu ostatnich 24 godzin
Rysh
  1. SELECT * FROM tabela WHERE ostatnie_logowanie > UNIX_TIMESTAMP()-86400
abel1
Niestety to nie działa .
Wyświetla nadal nawet tych co byli zalogowani dwa dni temu
Rysh
Pewnie nie zmodyfikowałeś zapytania pod siebie.
abel1
Nie wiem co masz na myśli , mam teraz takie zapytanie do bazy
  1. SELECT * FROM online WHERE ostatnie_logowanie > UNIX_TIMESTAMP()-86400

Tabela nazywa się"online"
Więc powinno działać a jednak nie działa
Kolumna która zapisuje czas ostatniej aktywności czyli "ostatnie_logowanie"ma format zapisu "timestamp "
A wyświetla wszystkich nawet tych co byli zalogowanie 4 dni temu
mariolita
a prawidłowo zapisuje dane w bazie danych?
abel1
TAK
Mam to na localhost i na hostingu i w obu przypadkach taki sam efekt
W tabeli jest zapisana data więc nie trzeba być specjalistą żeby się domyślić że ktoś kto ma w bazie date 12.08.2016 nie powinien się wyświetlać na stronie
Ręce mi już opadają nie mam pomysłu jak to zrobić
Wydaje sie to takie proste
Wyświetlić na stronie tylko osoby które były zalogowane przez ostatnie 24 godziny
A jednak od ponad tygodnia z tym walczę bezskutecznie
viking
Ostatnie logowanie to datetime (lub pochodny) czy timestamp?
abel1
było już wszytko co jest możliwe , teraz przy tym zapytaniu mam "timestamp"
Ale miałem też datatime i nic to nie dało
viking
Pokaż aktualną przykładową wartość tej kolumny
abel1
2016-08-14 17:15:27 (user 1)

2016-08-16 22:18:58 (user2)
Rysh
  1. SELECT * FROM `objects` WHERE (date_field BETWEEN '2010-01-30 14:15:55' AND '2010-09-29 10:15:55')
abel1
Cytat(Rysh @ 16.08.2016, 22:34:49 ) *
  1. SELECT * FROM `objects` WHERE (date_field BETWEEN '2010-01-30 14:15:55' AND '2010-09-29 10:15:55')


Jak byś mógł podać dokładną składnie tego zapytania był bym wdzięczny
Tabela : online
Feralna kolumna : ostatnie_logowanie
Próbowałem na kilka sposobów ale albo mi się wywala błędem albo nic nie wyświetla
viking
Czyli nie masz timestamp tylko datetime.

  1. SELECT * FROM online WHERE ostatnie_logowanie > NOW() - INTERVAL 1 DAY;
abel1
Cytat(viking @ 17.08.2016, 08:07:43 ) *
Czyli nie masz timestamp tylko datetime.

  1. SELECT * FROM online WHERE ostatnie_logowanie > NOW() - INTERVAL 1 DAY;

kolumna jest timestamp



A kod który podałeś nie działa z timestamp ani DATATIME
Nie mam pojęcia jaka może być pryczyna

Próbuje zrobić tylko wykaz zalogowanych przez ostatnie 24h
To nic niezwykłego a jakoś nie wychodzi mi to
viking
Nie działa mówisz?
http://sqlfiddle.com/#!9/3404f/1
abel1
Nie wiem co jest grane , napisze do supportu i niech coś z tym zrobią
jak by to nie działało tylko na moim localhost to OK coś żle mam zainstalowane albo ustawione , ale na płatnym hostingu ?
Być może jest coś skopane , zobaczymy
viking
A co to znaczy że nie działa? Włączone raportowanie błędów? W jaki sposób ten kod wywołujesz, jaka wersja mysql?
abel1
problem w tym że to moje początki , nie znam się na tym dopiero się wszystkiego ucze
Tak powiecie że to podstawy , ale na prawdę nie wiem nawet jak o sprawdzić a nie chce już tam więcej grzebać
zapłaciłem zgłosiłem do supportu i niech teraz oni to naprawia

Rysh
Cytat(abel1 @ 17.08.2016, 17:38:27 ) *
problem w tym że to moje początki , nie znam się na tym dopiero się wszystkiego ucze
Tak powiecie że to podstawy , ale na prawdę nie wiem nawet jak o sprawdzić a nie chce już tam więcej grzebać
zapłaciłem zgłosiłem do supportu i niech teraz oni to naprawia

Tylko to o czym Ty mówisz nie ma nic wspólnego z zakupem hostingu.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.