Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wyciągnięcie ilości rekordów starszych niż 10 minut.
ahold
post 17.06.2009, 13:48:41
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.05.2009

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


Uszanowanie,

Mam w bazie danych zapisane rekordy.
Chciał bym wykonać select ilości tych rekordów które spełnią pewien warunek "autor=xxx" oraz drugi bardziej skomplikowany a mianowicie data z przedziału 10 minut temu.

Czyli seria, ile w ciągu 10 minut, było wpisów użytkownika xxx.

Zawsze robiłem to w PHP, wysyłając SELECT LIMIT 5. Patrzyłem na ostatni rekord. Porównywałęm datę. Jak była starsza, to interpretowałęm te informację.

Teraz chciał bym odnieść się bezpośrednio do serwera SQL.

  1. SELECT * FROM `responses` WHERE `data`>now()-600


Można by tutaj dodać patamert AS ilosc_wyników abym zczytał to za jednym pociągnięciem ?
Myślałem o czymś takim. Czy to jest dobra metoda ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
thomas2411
post 17.06.2009, 13:52:57
Post #2





Grupa: Zarejestrowani
Postów: 108
Pomógł: 7
Dołączył: 15.05.2005
Skąd: Rzeszów

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


A działa Ci Twoje zapytanie?
Go to the top of the page
+Quote Post
ahold
post 17.06.2009, 14:02:51
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.05.2009

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


Przez chwile działa, a potem przestaje, po mimo że od upłynięcia wiadomości nie minęło 10 minut a on nie pokazuje już rekordów :/

Sprawdzałęm godzinę na serwerze, godzinę w SQL.
Było ok 7 minut - a on przestał wyświetlać rekordy.
Go to the top of the page
+Quote Post
erix
post 17.06.2009, 14:06:04
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Hmm, a nie timestamp?

  1. SELECT * FROM `responses` WHERE `data`>unix_timestamp(now())-600


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
thomas2411
post 17.06.2009, 14:09:40
Post #5





Grupa: Zarejestrowani
Postów: 108
Pomógł: 7
Dołączył: 15.05.2005
Skąd: Rzeszów

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


  1. SELECT COUNT(*) FROM tablica WHERE twojczas>= DATE_SUB(CurrentTime(),INTERVAL 10 MINUTE)
Go to the top of the page
+Quote Post
ahold
post 17.06.2009, 14:26:49
Post #6





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 27.05.2009

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


Dziękuję Thomas.

Dokładnie o to mi chodziło.

Moj serwer MySQL zaakceptował dopiero taką formułę generowania czasu "now()".

Kod który działa.

  1. SELECT COUNT( * )
  2. FROM response WHERE DATA >= DATE_SUB( now( ) , INTERVAL 10
  3. MINUTE )


Wielkie dzięki, to jest dokładnie to.
Widzisz, i nie musieliśmy mieszać w to PHP.

pozdrawiam
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: 14.08.2025 - 09:23