[php] [html] [mysql] dodawnie czasu

0

Witam... mam mały problemik.
Mam bazę danych w mysql. w niej zamiescilem sobie godziny które na coś poświęciłem czyli np. 01:23:00 [hh:mm:ss]. Wlasnie w takim formacie jest zapisany wynik w bazie. Teraz kiedy w php Wyświetla mi pojedyncze godziny to wszystko jest super na stronie. ale kiedy chce podsumować sobie godziny poświęcone na wszystkie moje zajęcia to juz nie zachowuje mi formatu godziny tylko zwykły liczbowy w ogromnym przyblizeniu (np. 20) a powinno być np. 21:45;

$czas2 = $row['czas'] + $czas2;

on dodaje chyba tylko całe godziny i nic więcej. Czy jest jakaś opcja na zmianę tego?

0

Na początek radziłbym skorzstać w zapytaniu z SUM(nazwa_kolumny), a co do czasu to nie lepiej tobie go przechowywać w sekundach??

Czyli np.:
SELECT SUM(czas) as caly FROM nazwa tabeli
I w tym momencie masz zsumowaną kolumnę czas w $row['caly'] używając twojego nazewnictwa ;)

0
mephir napisał(a)

Na początek radziłbym skorzstać w zapytaniu z SUM(nazwa_kolumny), a co do czasu to nie lepiej tobie go przechowywać w sekundach??

Czyli np.:
SELECT SUM(czas) as caly FROM nazwa tabeli
I w tym momencie masz zsumowaną kolumnę czas w $row['caly'] używając twojego nazewnictwa ;)

hmm... sprobowałem ale niestety nie działa to w ten sposób jaki bym chciał
wysłałem taki tekst za pomocą php

$query = "SELECT SUM(czas) as caly FROM `1` WHERE `rok` = 2007 AND `miesiac` = 11";
    $result = mysql_query($query)
        or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
    while ($row = mysql_fetch_array($result)) {
        $czas2 = $row['caly'];
        }

W tym wypadku zmienna czas2 miałą wartość 286000. Niestety nie przypomina to formatu godziny. Myslalem ze może to sekundy ale dzieląc ten wynik rpzez 60 (sekundy) i znów przez 60 (minuty) otrzymujemy 79,(4) - a to nie jest prawidłowy wynik godzin - powinno być około 30 godzin 35 minut.

Wyczytałem, że zamiast SUM można dać COUNT czyli:

$query = "SELECT COUNT(czas) as caly FROM `1` WHERE `rok` = 2007 AND `miesiac` = 11";
    $result = mysql_query($query)
        or die("Wykonanie zapytania nie powiodło się: ".mysql_error());
    while ($row = mysql_fetch_array($result)) {
        $czas2 = $row['caly'];
        }

ten kod dał mi wynik 31 co jest wynikiem zaokrąglonych w górę godzin.

Czy jest jakaś możliwość żeby kod zsumował kolumnę "czas" która ma format "TIME DEFAULT '00:00:00' " (czyli standardowy TIME w phpmyadmin) i żeby zachował ten format?

0

Count() zwraca ilośc wpisów w danej tabeli

0

faktycznie - moja niewidza i ogromny zbieg okoliczności :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0