Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> licznik i niepoprawne dane
miccom
post 23.05.2020, 11:41:36
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

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


Cześć smile.gif

Mam przygotowany licznik js, pobieram wartość z bazy danych i chcę, aby jen js pokazywał mi przyrost co 1 sek.

Kod w php mam ptaki:
  1. $mLA = $this -> db -> query('SELECT `rawMaterials`, `lastAction` FROM `users` WHERE `id` = '. $this -> account -> id .' ')->fetch();
  2. $czas = $this -> init ->time - $mLA['lastAction'];
  3. if($czas > 0 ){
  4. //obliczamy, ile surowca doliczyć za każdą sekundę
  5. $rawMat = 1;
  6. $this -> tmplData['variables']['upSur'] = $rawMat;
  7. $this -> tmplData['variables']['rawMaterials'] = $mLA['rawMaterials'] + ( $rawMat*$czas );
  8. $this -> db -> exec('UPDATE `users` SET `rawMaterials`=( `rawMaterials`+ '. ( $rawMat*$czas ) .' ), `lastAction` = '. $this->init->time .' WHERE `id`='. $this -> account -> id .' LIMIT 1');


Wartości upSur i rawMaterials wysyłam do javascript, dokładnie do kodu:


  1. function materials(ilosc,przyrost,surowiec){
  2. var wynik = ilosc+przyrost;
  3. console.log(" ilość="+ilosc+", surka={{ rawMaterials }}");
  4. $("#"+surowiec+"").html(wynik.toFixed()); // przypisanie tekstu timera do odpowiedniego elementu html
  5. setTimeout(function() { materials(wynik,przyrost,surowiec); }, 1000);
  6. }
  7. $(document).ready(function() {
  8. materials( {{ rawMaterials }}, {{ upSur }}, 'rawMaterials' );
  9. });
  10.  
  11.  




I zegar zaczyna prawidłowo odliczać, ale niestety- po odświeżeniu strony zamiast "utrzymać" odliczona wartość- mam ją raz większą niż powinna być, raz mniejszą.
Teoretycznie przyrost ustawiłem na 1szt na sek- więc ile sekund upłynęło tyle powinno się doliczyć, a mimo to coś nie bangla, czy możecie mi podpowiedzieć, co nie działa właściwie?

Jak oceniacie, czy wg. was kod licznika jest prawidłowy czy nie do końca?

Teraz dodałem taki kod:

  1. var surka = {{ rawMaterials }};
  2. var przyrost = {{ upSur }};
  3. function materials(){
  4. surka = surka+przyrost;
  5. $("#rawMaterials").html(surka);
  6. }

i to wywołuję kodem:
  1. setInterval( materials, 1000);

ale dalej to samo.
sad.gif
Wychodzi na to, że odliczanie php inaczej pracuje niz w javascriptcie, czy to możliwe?

Ten post edytował miccom 23.05.2020, 11:43:12


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
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: 28.03.2024 - 13:31