Cześć, posiadam problem, wyświetlam w pętli While pozostały czas dla akcji danego użytkownika, czas jest w sekundach.

Mój kod wygląda tak:

  1. $i = 1;
  2.  
  3. $zap1 = mysql_query("SELECT * FROM akcje WHERE user_id='".$uzytkownik['id']."'") or die('Błąd zapytania');
  4. while($r = mysql_fetch_assoc($zap1)) {
  5. $is = $i++;
  6.  
  7. <script>
  8. function liczCzas(ile) {
  9. dni = Math.floor(ile / 86400);
  10. godzin = Math.floor((ile - dni * 86400)/ 3600);
  11. minut = Math.floor((ile - dni * 86400 - godzin * 3600) / 60);
  12. sekund = ile - dni * 86400 - minut * 60 - godzin * 3600;
  13. if (godzin < 10){ godzin = '0'+ godzin; }
  14. if (minut < 10){ minut = '0' + minut; }
  15. if (sekund < 10){ sekund = '0' + sekund; }
  16. if (ile > 0) {
  17. ile--;
  18. document.getElementById('zegar".$is."').innerHTML = dni + ' dni ' +godzin + ':' + minut + ':' + sekund;
  19. setTimeout('liczCzas('+ile+')', 1000);
  20. } else {document.getElementById('zegar".$is."').innerHTML = '[koniec]';}}
  21.  
  22. </script> ";
  23.  
  24. if($r['czas'] > time()){$pozostalo = $r['czas'] - time();
  25. $czas = "<span id='zegar".$is."'></span><script type='text/javascript'>liczCzas(".$pozostalo.")</script>";
  26. }
  27.  
  28.  
  29. }
  30.  


Niby wszystko działa, gdy jest 1 akcja, a jeśli są 2, 3, 5 lub więcej akcji (od 1) to czas rzeczywisty pokazuje się tylko u ostatniego wyniku a u poprzednich pokazuje się tylko taki który został załadowany przy wejściu na stronę.

Gdzie tutaj szukać błędu ?.


Pozdrawiam i z góry dziękuje.