Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Roznica miedzy data, Jak obliczyc roznice
redxill
post 30.11.2019, 09:27:20
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 22.06.2019

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


Witam,
w bazie mam 25 roznych dat oczywiscie format unixowy, w jaki sposob moge obliczyc roznice miedzy tymi czasami? Chodzi o roznice miedzy 1 i2, 2 i 3, 3 i 4, i tak az do 24 i 25
Nie wiem jak sie do tego zabrac, jest jakis poradnik, albo przynajmniej jakies slowa kluczowe dzieki ktorym nabiore wiecej informacji jak mam w ogole zaczac?
Prosze was o pomoc

Pozdrawiam

Ten post edytował redxill 30.11.2019, 09:28:12
Go to the top of the page
+Quote Post
trueblue
post 30.11.2019, 09:47:44
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Słowa kluczowe: pętla for, różnica dwóch elementów.


--------------------
Go to the top of the page
+Quote Post
redxill
post 30.11.2019, 11:55:21
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 22.06.2019

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


a co jesli bede mial nieokreslona liczbe czasow w bazie?
Go to the top of the page
+Quote Post
trueblue
post 30.11.2019, 11:57:21
Post #4





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


To nadal te same słowa kluczowe.


--------------------
Go to the top of the page
+Quote Post
Tomplus
post 30.11.2019, 12:59:19
Post #5





Grupa: Zarejestrowani
Postów: 1 831
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


to zamiast for, użyj foreach albo while
Go to the top of the page
+Quote Post
redxill
post 30.11.2019, 13:48:38
Post #6





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 22.06.2019

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


Metoda while mam wyjete wszystkie czasy z bazy:

$polacz = mysqli_query($db_conn,'SELECT * FROM `date` ');
while($row=mysqli_fetch_array($polacz)) {
echo $row['time'].'</br>'
}

1 czas 1574354720-- roznica do 2 czas = 3600
2 czas 1574351120-- roznica do 3 czas = 3600
...
24 czas 1574315120--roznica do 25 czas = 3600
25 czas 1574311520--
tego nie wiem jeszcze
teraz potrzebuje roznice jakos wydobyc z tej tabeli, z czasami, ale nie wiem dalej jak sie za to wziasc?

Ten post edytował redxill 30.11.2019, 13:50:40
Go to the top of the page
+Quote Post
trueblue
post 30.11.2019, 14:22:23
Post #7





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


A musisz pobierać po jednym wierszu?

Jest metoda mysqli_fetch_all. Pobierzesz wszystkie wiersze naraz. Pętla for przy ograniczeniu z count.

Różnica między wierszem i+1, a wierszem i. Nad ostatnią wartością nie ma się co zastanawiać, bo... jest ostatnia, więc nie ma już kolejnego, prawda?


--------------------
Go to the top of the page
+Quote Post
viking
post 30.11.2019, 14:26:20
Post #8





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


A dodatkowo na podstawie czego wyliczasz ten czas bo w zapytaniu nie ma żadnego order by więc wyniki są losowe.


--------------------
Go to the top of the page
+Quote Post
redxill
post 30.11.2019, 14:42:43
Post #9





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 22.06.2019

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


To jest testowa tabela i nie ma w niej nic wiecej, z pewnoscia w przyszlosci bedzie conajmniej oder by id.
Nie chce pobierac po jednym wierszu tylko wzystkie danego typu, wyswietlana jest teraz cala lista od 1 do 25 i potrzebuje dodac kolumne z boku jaka jest roznica miedzy kazdym nastepnym czasem, bedzie to bodajrze czas logowania?questionmark.gif
Chodzi o to jak mam rozbrac te $row['time'] na pojedyncze i obliczyc roznice miedzy nimi?
Go to the top of the page
+Quote Post
trueblue
post 30.11.2019, 14:56:39
Post #10





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Już Ci napisałem.
Pobierasz wszystkie wiersze poprzez mysqli_fetch_all. Pętlę tworzysz od 0 do count($tablica).
W pętli obliczasz różnicę między następnym elementem, a aktualnym.


--------------------
Go to the top of the page
+Quote Post
viking
post 30.11.2019, 16:17:06
Post #11





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


  1. CREATE TABLE IF NOT EXISTS `docs` (
  2. `id` int(6) UNSIGNED NOT NULL,
  3. `date` timestamp NOT NULL,
  4. PRIMARY KEY (`id`)
  5. ) DEFAULT CHARSET=utf8;
  6. INSERT INTO `docs` (`id`, `date`) VALUES
  7. (1, '2019-11-30 15:10:28'),
  8. (2, '2019-11-29 14:15:33'),
  9. (3, '2019-11-28 22:22:12'),
  10. (4, '2019-11-27 09:09:41'),
  11. (5, '2019-11-26 12:15:18');
  12.  
  13. SELECT
  14. *,
  15. TIMESTAMPDIFF(MINUTE,
  16. (SELECT MAX(date) FROM docs WHERE date < t.date),
  17. date
  18. ) AS minutediff
  19. FROM docs AS t


Ten post edytował viking 30.11.2019, 16:18:11


--------------------
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: 16.04.2024 - 17:58