Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nietypowe zapytanie - prośba o pomoc
topcio
post
Post #1





Grupa: Zarejestrowani
Postów: 140
Pomógł: 0
Dołączył: 14.01.2017

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


Witajcie.
Potrzebuję wykonać takie zapytanie do bazy:
Z rekordów od teraz wstecz o 1440 minut wyszukaj rekordy, które po sobie miały wartość 0. Jeśli znajdzie zwróci true.
Dla zobrazowania.

2018-03-04 13:30:00 1
2018-03-04 13:31:00 1
2018-03-04 13:32:00 1
2018-03-04 13:33:00 0 |
2018-03-04 13:34:00 0 |
2018-03-04 13:35:00 0 |
2018-03-04 13:36:00 0 |
2018-03-04 13:37:00 0 | Tu znalazł 10 rekordów po sobie więc zwraca TRUE
2018-03-04 13:38:00 0 |
2018-03-04 13:39:00 0 |
2018-03-04 13:40:00 0 |
2018-03-04 13:41:00 0 |
2018-03-04 13:42:00 0 |
2018-03-04 13:43:00 1
2018-03-04 13:44:00 1
2018-03-04 13:45:00 0 |
2018-03-04 13:46:00 0 | Ale tu już nie było 10 po sobie więc je pomija.
2018-03-04 13:47:00 1
2018-03-04 13:48:00 1

Nie mam pojęcia jak się zabrać za takie zapytanie
Proszę o pomoc bardziej doświadczonych.

Na razie mam tylko do wyszukiwania ile razy było 0

  1. public FUNCTION get_dvr_offline_status_count($dvr_mac_address) {
  2. $result = $this->sql->query("
  3. SELECT count(dvr_test_status)
  4. FROM (
  5. SELECT dvr_test_status
  6. FROM dvr_status
  7. WHERE dvr_test_status = 0
  8. AND dvr_status_dvr_mac_address = '$dvr_mac_address'
  9. AND dvr_status_timestamp BETWEEN NOW() - INTERVAL 1440 MINUTE AND NOW()
  10. ) count
  11. ");
  12. RETURN $result->fetch_row()[0];
  13. exit;
  14. }



Ten post edytował topcio 4.03.2018, 13:45:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
topcio
post
Post #2





Grupa: Zarejestrowani
Postów: 140
Pomógł: 0
Dołączył: 14.01.2017

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


tak

Tym wstawiam rekordy

  1. "<?php
  2.  
  3. include_once '" . $_SERVER['DOCUMENT_ROOT'] . "/class/db_login.php';
  4. include_once '" . $_SERVER['DOCUMENT_ROOT'] . "/class/Sql.class.php';
  5. \$sql = new Sql( \$db_host, \$db_user, \$db_passwd, \$db_name );
  6. \$sock = @fsockopen( '" . long2ip($data['dvr_wan_ip_address']) ."', '" . $data['dvr_wan_tcp_port'] . "', \$num, \$error, 1 );
  7. if( !\$sock ){
  8. \$result = \$sql->query(\"
  9. INSERT INTO dvr_status (
  10. dvr_status_id,
  11. dvr_status_timestamp,
  12. dvr_status_dvr_mac_address,
  13. dvr_test_status
  14. )
  15. VALUES (
  16. NULL,
  17. '\" . date_create()->format('Y-m-d H:i') . \"',
  18. '{$data['dvr_mac_address']}',
  19. 0
  20. )\");
  21. }
  22. if( \$sock ){
  23. fclose(\$sock);
  24. \$result = \$sql->query(\"
  25. INSERT INTO dvr_status (
  26. dvr_status_id,
  27. dvr_status_timestamp,
  28. dvr_status_dvr_mac_address,
  29. dvr_test_status
  30. )
  31. VALUES (
  32. NULL,
  33. '\" . date_create()->format('Y-m-d H:i') . \"',
  34. '{$data['dvr_mac_address']}',
  35. 1
  36. )\");
  37. }
  38. ?>";


ale może się zdarzyć tak, że np między 11.55 a 12.04 jest przerwa konserwacyjna w testach.
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 11.10.2025 - 23:23