Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: podliczenie godzin w kolumnach
Forum PHP.pl > Forum > PHP
acer
Witam.
Próbuje napisać prosty skrypt podsumowujący godziny pracy pracowników na podstawie daty godziny zalogowania oraz wylogowania. Dane są przechowywane w tabeli sql i teraz podczas prezentacji tych danych w tabeli chciałbym żeby skrypt zaprezentował dane dla konkretnego wiersza, ale coś mi to nie wychodzi ponieważ skrypt wszystko fajnie oblicza tak jak właśnie chcę z tą tylko różnicą, że dla pierwszego wiersza i pozostałe wiersze mają już taką samą wartość jak pierwszy. Czy ktoś byłby w stanie pomóc?
tak wygląda funckja:
  1. <?php
  2. // funkcja obliczajaca ilość godzin
  3. function ilosc_godzin($data_poczatek, $date_koniec, $jednostka_czasu="sekund")
  4. {
  5. $tablica = array(godzin=>3600);
  6. return round(((strtotime($date_koniec) - strtotime($data_poczatek)) / $tablica[$jednostka_czasu]))." ".$jednostka_czasu;
  7.  
  8. }
  9. //
  10. $data1 = $kol_czas['czasroz'];
  11. $data2 = $kol_czas['czaszak'];
  12. ?>

a tu prezentacja danych w tabeli:
  1. <table width="585" border="0">
  2.  <tr>
  3.    <td>idzm</td>
  4.    <td>login</td>
  5.    <td>Rozpoczęcie pracy</td>
  6.    <td>Zakończenie pracy</td>
  7.    <td>Podsumowanie</td>
  8.  </tr>
  9.  <?php do { ?>
  10.    <tr>
  11.      <td><?php echo $kol_czas['idzm']; ?></td>
  12.      <td><?php echo $kol_czas['login']; ?></td>
  13.      <td><?php echo $kol_czas['czasroz']; ?></td>
  14.      <td><?php echo $kol_czas['czaszak']; ?></td>
  15.      <td><?php echo ilosc_godzin("$data1", "$data2", "godzin");
  16. ?></td>
  17.    </tr>
  18.    <?php } while ($kol_czas = mysql_fetch_assoc($czas)); ?>
  19. </table>
sowiq
A to dlatego, że cały czas wykonujesz funkcję dla tych samych zmiennych, tzn:
  1. <?php
  2. echo ilosc_godzin("$data1", "$data2", "godzin");
  3. ?>

Zamiast $data1 wstaw w wywołaniu funkcji $kol_czas['czasroz'] i analogicznie dla drugiej zmiennej.
acer
Dzięki serdecznie sowiqexclamation.gif!
Oczywiście pomogło i już wszystko gra.

Jeszcze jeden mały problem mi wyskoczył i nie mogę sobie z nim poradzić otóż tak:
  1. <table width="585" border="0">
  2. <tr>
  3.   <td>idzm</td>
  4.   <td>login</td>
  5.   <td>Rozpoczęcie pracy</td>
  6.   <td>Zakończenie pracy</td>
  7.   <td>Podsumowanie</td>
  8. </tr>
  9. <?php do { ?>
  10.   <tr>
  11.     <td><?php echo $kol_czas['idzm']; ?></td>
  12.     <td><?php echo $kol_czas['login']; ?></td>
  13.     <td><?php echo $kol_czas['czasroz']; ?></td>
  14.     <td><?php echo $kol_czas['czaszak']; ?></td>
  15.     <td><?php $sd = roznica_data($kol_czas['czasroz'], $kol_czas['czaszak'], "minut")/'60';echo number_format($sd, 2, ':', ' ');?></td>

teraz chciałbym wynik funkcji roznica_data zsumować no i nawet mi się to udało tylko że pokazuje kolejno sumę po każdym wierszu a ja bym chciał tylko żeby pokazywał tę ostatnią
kod:
  1. </tr>
  2.   <?php
  3.    $suma += $sd ;
  4.    echo number_format($suma, 2, ':', ' ') ;
  5.    ?>
  6.    <?php } while ($kol_czas = mysql_fetch_assoc($czas)); ?>
  7. </table>
sowiq
echo wyrzuć za pętlę.
acer
ok działa sowiq jesteś Wielki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.