e-konrad
12.12.2014, 11:09:54
Witam,
Od dłuższego czasu próbuję wykonać działanie sumy na elementach tablicy, dane z tablicy pozyskuję z bazy danych mysql. Mój kod
$query = mysql_query("select t.customer_id as 'customer', SUM(ta.time_unit)*60 as 'czas' FROM ticket t
left join time_accounting ta ON ta.ticket_id=t.id
WHERE
t.customer_id like '$klient' AND
t.create_time BETWEEN '$data_od 00:00:00' AND '$data_do 23:59:59' AND
ta.time_unit is NOT NULL
GROUP BY t.customer_id");
{
$allTime[] += $row['czas'];
licz_czas($row['customer'],$row['czas']);
}
wynikiem jest wyświetlenie po kolei wszystkich elementów, w moim przypadku czasów.
Co jest nie tak?
nospor
12.12.2014, 11:13:20
nie: $allTime[] += $row['czas'];
a: $allTime[] = $row['czas'];
swoją drogą po grzyba mieszasz w to tablice??
$suma = 0;
{
$suma += $row['czas'];
licz_czas($row['customer'],$row['czas']);
}
e-konrad
12.12.2014, 11:46:44
zapytanie zwracało mi czas w postaci xx.xx, użyłem explode i dostosowałem pod Twój kod. Wypisało mi wartości.
$suma = 0;
{
$suma += $czas[0];
licz_czas($row['customer'],$row['czas']);
}
nospor
12.12.2014, 11:50:28
Jesli nadal nadal wypisuje ci kilka wartosci znaczy ze
albo ta linijka
licz_czas($row['customer'],$row['czas']);
cos wyswietla na ekran
albo kod co pokazales masz jeszcze w jakiejs petli wiec logiczne ze echo $suma wyswietli ci sie wiele razy
e-konrad
12.12.2014, 12:09:35
całe zapytanie jest w funkcji które jest wykonywane tyle razy ilu jest klientów
nospor
12.12.2014, 12:17:22
No to czemu sie dziwisz, ze suma wyswietla ci sie wielokrotnie? Skoro dla kazdego klienta liczysz i wyswietlasz sume, to dla kazdego sie wyswietli - logiczne
e-konrad
12.12.2014, 12:21:45
inaczej tego nie rozwiążę ponieważ z jednej bazy pobieram klientów następnie na podstawie wyników(klientów) wyciągam dane z innej bazy danych(czasy)
nospor
12.12.2014, 12:27:59
No ale ty czas chcesz sumowac dla kazdego klienta oddzielnie czy dla wszystkich razem?
e-konrad
12.12.2014, 12:33:39
dla wszystkich razem
nospor
12.12.2014, 12:42:11
No to skoro dla wszystkich razzem, to czemy wyswietlanei robisz w petli?
Wyswietlanie $suma masz robic poza główną petlą a nie w srodku, oraz zerowanie $suma=0 masz robic przed petlę główną a nie w srodku
A jesli tem kod $suma+=... jest w funkcji, to albo przekazuje $suma przez parametr, zwracaj i odbieraj, albo uzywaj global.
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.