Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [Java][SQL][PHP]Odliczanie czasu z bazy MYSQL
awek520
post 18.12.2014, 14:52:20
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


Witam.

Piszę taki mały skrypt polegający na odliczaniu czasu rzeczywistego.

Chodzi o to.. że gdy klikniemy np w link to wykona się zapytanie do bazy i skrypt zacznie odliczac czas (podany w bazie mysql)

W bazie będą dwa rekordy. Czas rzeczywisty zmieniający się po kliknięciu w link + drugi rekord z czasem np. 30min. (czas potrzebny do zmiany)

Po 30 min jakieś powiadomienie że czas się skończył + kolejne zapytanie do mysql że coś zostało zmienione.
Oczywiście odliczanie w js.

Czy można to tak zrobic?

Jak sie do tego zabrac.? W JS jestem bardzo slaby a potrzebuje tylko tego skryptu.

Pozdrawiam
Go to the top of the page
+Quote Post
rad11
post 18.12.2014, 15:38:34
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Musisz w tym wypadku uzyc AJAX`a. Po kliknieciu w odnosnik dodajesz aktualnie klikniety czas i aktualny czas + 30minut. Mozesz dac warunek po kliknieciu ktory bedzie sprawdzac czy data aktulana >= data+30minut jesli sie rowna lub jest wieksze to wtedy robisz zmiane.
Go to the top of the page
+Quote Post
awek520
post 18.12.2014, 19:27:18
Post #3





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


Mam taki kodzik:

  1. <a href="?action=stacje&pts=1">241 - CZAS AKTUALNY</a>
  2.  
  3. <?php
  4. if($_GET['pts']!=''){
  5. if ($_GET['pts']==1){
  6. $pociagi=mysql_query("SELECT * FROM pociagi WHERE gracz=$_SESSION[id] AND id = 241");
  7.  
  8. $czas_aktualny=date('Y.m.d, H:i:s');
  9. $czas_potrzebny = date('Y.m.d, H:i:s', strtotime('+30 minutes'));
  10.  
  11. mysql_query("UPDATE pociagi SET czas_aktualny='$czas_aktualny', czas_potrzebny='$czas_potrzebny' WHERE id='241'");
  12. echo '<br><br>Czas zmieniony <b>'.$czas_aktualny.'</b>
  13.  
  14. <br><br>
  15.  
  16. Pociąg dojedzie do celu o <b>'.$czas_potrzebny.'</b>';
  17. }
  18. }
  19. ?>


1. Chciałbym teraz się zapytac czy jak zmienie czas na kompie to czy tamten czas także sie zmieni?
2. I jak zrobic te odejmowanie czasu + zapytanie mysql.
3. Czy jesli ktoś nie bedzie zalogowany to czy zapytanie także dojdzie do celu ?

Ten post edytował awek520 18.12.2014, 19:42:35
Go to the top of the page
+Quote Post
timon27
post 19.12.2014, 08:53:37
Post #4





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

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


1. Nie, czas pobierany jest na serwerze.
2. Niepotrzebnie używasz funkcji date - zamienia ona czas unix na wersję "czytelną dla ludzi" która trudniej przetwarzać.
Uzyj time(), to po prostu odejmiesz te dwie liczby i będziesz miał wynik w sekundach. Funkcji date używaj tylko przy wyświetlaniu.
Reszta to logiczne myślenie.
3. tak, jeśli to nie jest w ifie sprawdzającym zalogowanie

Ten post edytował timon27 19.12.2014, 08:54:22
Go to the top of the page
+Quote Post
awek520
post 19.12.2014, 13:00:28
Post #5





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


Zmieniłem to na time.. no ale teraz pytanie jak to wyswietlic ? bo narazie to wyświetla w formie " Czas zmieniony 1418990376 "
Go to the top of the page
+Quote Post
Turson
post 19.12.2014, 13:03:04
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Java !== Javascript
Go to the top of the page
+Quote Post
nospor
post 19.12.2014, 13:04:59
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Niepotrzebnie zamieniales to na time... rzekome datetime wcale nie jest trudniejsze do przetwarzania...

No ale skoro juz zamieniles na time, to teraz przed wyswietleniem masz uzyc date() by zamienic to na wersje czytelną dla ludzi


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
awek520
post 19.12.2014, 13:19:10
Post #8





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


Zrobiłem to trochę inaczej..

Oto kodzik:

  1. <?php
  2.  
  3. if($czas_aktualny >= $czas_potrzebny) {
  4. echo 'Czas dobiegł konca - edycja mysql';
  5. }
  6. else {
  7. echo 'do konca czasu pozostało: ....';
  8. }
  9. ?>


Chciałbym zapytac jeszcze jak obliczyc ten czas.. szukam po forach i nic.. a niby taki banał ; /


Yhy, działa tylko jak zmieniamy czas.. po odswieżeniu strony już nie działa ;/

Ten post edytował awek520 19.12.2014, 13:22:57
Go to the top of the page
+Quote Post
rad11
post 19.12.2014, 13:22:37
Post #9





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Ten czas to ktory? potrzebny? Jak potrzebny to przeciez obliczales go i dodawales do bazy a czas aktualny to przeciez date("Y-m-d H:i:s").
Go to the top of the page
+Quote Post
awek520
post 19.12.2014, 13:24:52
Post #10





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


Teraz to Cię nie rozumiem.. chciałem poprostu w if sprawdzic czy czas aktualny jest taki sam lub większy od czasu potrzebnego.. no ale nie bardzo się to udało


aa już chyba wiem.. jak zrobic zapytanie czas_potrzebny - czas_aktualny.. tak żeby wiedziec ile czasu pozostało do czas_potrzebny

Ten post edytował awek520 19.12.2014, 13:26:09
Go to the top of the page
+Quote Post
rad11
post 19.12.2014, 13:35:22
Post #11





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Ale probujesz isc jak kon pod gore przeciez masz juz czas potrzebny do zmiany w bazie danych, porownuj go tak:



  1.  
  2. if(date('Y-m-d H:i:s') >= $czas_potrzebny){
  3.  
  4. echo 'koniec';
  5.  
  6. }
  7.  
  8.  



a jesli zrobisz ta operacje o ktorej Ty mowisz to otrzymasz tylko roznice ktora pokazuje Ci ile zostalo do zmiany.
Go to the top of the page
+Quote Post
awek520
post 19.12.2014, 13:39:26
Post #12





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


Ok zrobiłem tak jak napisałeś..

  1. <?php
  2.  
  3. if(date('Y-m-d H:i') >= $czas_potrzebny){
  4.  
  5. echo 'koniec';
  6. }
  7. else {
  8. echo 'liczymy';
  9. }
  10. ?>


Tylko mówię że gdy klikam jakąś podstronę to zamiast w tym momencie przez 30 min wyswietlac liczymy to wyświetla koniec
Go to the top of the page
+Quote Post
rad11
post 19.12.2014, 13:41:36
Post #13





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


A co pokazuje var_dump($czas_potrzebny); questionmark.gif
Go to the top of the page
+Quote Post
awek520
post 19.12.2014, 13:43:20
Post #14





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


Pusty jest - NULL
Go to the top of the page
+Quote Post
rad11
post 19.12.2014, 13:44:40
Post #15





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


No to masz odpowiedz na pytanie , a if dobrze pokazuje bo date('Y-m-d H:i:s') jest wieksze od NULL.

Ten post edytował rad11 19.12.2014, 13:45:23
Go to the top of the page
+Quote Post
awek520
post 19.12.2014, 13:46:00
Post #16





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


To czemu wyświetla się pusty jak dane są zapisane i wyświetlane dobrze ?
Go to the top of the page
+Quote Post
rad11
post 19.12.2014, 13:47:56
Post #17





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Moze dlatego

  1. date('Y.m.d, H:i:s', strtotime('+30 minutes'));


popraw na(usun przecinek i kropki):

  1. date('Y-m-d H:i:s', strtotime('+30 minutes'));


Ten post edytował rad11 19.12.2014, 13:48:23
Go to the top of the page
+Quote Post
awek520
post 19.12.2014, 13:51:44
Post #18





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


No zmieniłem.. i przy aktualizacji dobrze "wypluwa" dane na var_dump no ale po przejsciu w inna na poprzednią stronę znów to samo.. i "koniec"
Go to the top of the page
+Quote Post
rad11
post 19.12.2014, 13:56:19
Post #19





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


A czy na tej innej stronie tez sprawdzasz ten czas?
Go to the top of the page
+Quote Post
awek520
post 19.12.2014, 13:58:19
Post #20





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (20%)
X----


Chodzi mi o stronę główną - home.php
Ten skrypt znajduję się też na niej - tylko na _GET

To jest ta sama strona - więc powinno działac
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 13.06.2025 - 06:28