Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyciągnięcie ilości rekordów starszych niż 10 minut.
ahold
post
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
thomas2411
post
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
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
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
Go to the top of the page
+Quote Post
thomas2411
post
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
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 01:12