Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Jak skonstruować zapytanie do bazy
abel1
post 13.08.2016, 22:12:14
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


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
Go to the top of the page
+Quote Post
Rysh
post 14.08.2016, 13:17:57
Post #2





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


  1. SELECT * FROM tabela WHERE ostatnie_logowanie > UNIX_TIMESTAMP()-86400


--------------------
Go to the top of the page
+Quote Post
abel1
post 14.08.2016, 22:44:29
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


Niestety to nie działa .
Wyświetla nadal nawet tych co byli zalogowani dwa dni temu
Go to the top of the page
+Quote Post
Rysh
post 15.08.2016, 09:00:21
Post #4





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Pewnie nie zmodyfikowałeś zapytania pod siebie.


--------------------
Go to the top of the page
+Quote Post
abel1
post 15.08.2016, 23:30:21
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


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
Go to the top of the page
+Quote Post
mariolita
post 16.08.2016, 07:44:56
Post #6





Grupa: Zarejestrowani
Postów: 116
Pomógł: 10
Dołączył: 24.04.2015

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


a prawidłowo zapisuje dane w bazie danych?
Go to the top of the page
+Quote Post
abel1
post 16.08.2016, 12:00:57
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


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
Go to the top of the page
+Quote Post
viking
post 16.08.2016, 12:48:13
Post #8





Grupa: Zarejestrowani
Postów: 6 366
Pomógł: 1115
Dołączył: 30.08.2006

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


Ostatnie logowanie to datetime (lub pochodny) czy timestamp?


--------------------
Go to the top of the page
+Quote Post
abel1
post 16.08.2016, 19:40:28
Post #9





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


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
Go to the top of the page
+Quote Post
viking
post 16.08.2016, 20:02:45
Post #10





Grupa: Zarejestrowani
Postów: 6 366
Pomógł: 1115
Dołączył: 30.08.2006

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


Pokaż aktualną przykładową wartość tej kolumny


--------------------
Go to the top of the page
+Quote Post
abel1
post 16.08.2016, 21:18:41
Post #11





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


2016-08-14 17:15:27 (user 1)

2016-08-16 22:18:58 (user2)

Ten post edytował abel1 16.08.2016, 21:20:07
Go to the top of the page
+Quote Post
Rysh
post 16.08.2016, 21:34:49
Post #12





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


  1. SELECT * FROM `objects` WHERE (date_field BETWEEN '2010-01-30 14:15:55' AND '2010-09-29 10:15:55')


--------------------
Go to the top of the page
+Quote Post
abel1
post 17.08.2016, 00:18:55
Post #13





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


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
Go to the top of the page
+Quote Post
viking
post 17.08.2016, 07:07:43
Post #14





Grupa: Zarejestrowani
Postów: 6 366
Pomógł: 1115
Dołączył: 30.08.2006

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


Czyli nie masz timestamp tylko datetime.

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


--------------------
Go to the top of the page
+Quote Post
abel1
post 17.08.2016, 09:59:23
Post #15





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


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
Go to the top of the page
+Quote Post
viking
post 17.08.2016, 10:16:58
Post #16





Grupa: Zarejestrowani
Postów: 6 366
Pomógł: 1115
Dołączył: 30.08.2006

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


Nie działa mówisz?
http://sqlfiddle.com/#!9/3404f/1


--------------------
Go to the top of the page
+Quote Post
abel1
post 17.08.2016, 12:33:23
Post #17





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


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
Go to the top of the page
+Quote Post
viking
post 17.08.2016, 12:46:53
Post #18





Grupa: Zarejestrowani
Postów: 6 366
Pomógł: 1115
Dołączył: 30.08.2006

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


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?


--------------------
Go to the top of the page
+Quote Post
abel1
post 17.08.2016, 16:38:27
Post #19





Grupa: Zarejestrowani
Postów: 71
Pomógł: 2
Dołączył: 17.03.2014

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


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

Go to the top of the page
+Quote Post
Rysh
post 18.08.2016, 07:00:00
Post #20





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


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.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 5.06.2024 - 02:08