nordi
13.12.2006, 18:10:03
Witam mam problem z sumowaniem liczb w pętli, zamiast sumowac jedna liczba do drugiej, te liczby wypisuja sie jedna obok drugiej. Oto funkcja ponioczej
<?php
function zliczk ($id) {
$query_zlicz_kat="select id from zdjecia where idkat='$id'";
$query_zlicz="select id,idkat from kategorie where idkat='$id' and lang='pl'";
$res_zlicz=$GLOBALS["mydb"]->query($query_zlicz);
if($res_zlicz!=NULL) {
while($ds_zlicz=$res_zlicz->getrow()) {
$id=$ds_zlicz["id"];
$idkat=$ds_zlicz["idkat"];
zliczk($id);
}
}
$saldo+=$ile_zlicz_kat;
}
?>
w wyniku: 1 20 0 0 0 0
a powinno byc 21, moze ktos pomoc?
Pozdrawiam
Sedziwoj
13.12.2006, 18:20:42
A dlaczego $saldo nie jest globalną?
Pomijając fakt że nawet nie chce mi się tego analizować, bo to wszystko jakieś poplątane jest. (i dało by się pewnie zrobić jednym zapytaniem do bazy [takie mam wrażenie])
nordi
13.12.2006, 19:03:23
Po dodaniu global $saldo; zaczał sumowac jeszcze gorzej, to znaczy zamiast dla przykładu, kiedy wypisywał liczby
2 0
47 0
wypisuje teraz
2 0
49 0
Dziwna sprawa
tomekp
13.12.2006, 19:16:24
Napisz dokładnie co ta funkcja ma robić bo ja z tego nic nie rozumiem
Sedziwoj
13.12.2006, 19:22:51
Bo masz to źle zrobione.
zlicza już jak widzisz dobrze, 2+47=49, tylko że echo wypisuje przy każdej rekurencji.
I radzę sprawdzic sobie do czego służy w SQL COUNT() oraz GROUP BY.
nordi
13.12.2006, 19:24:57
Ta funkcja ma zliczac zdjecia w odpowiednich kategorach i je sumowac, te kategorie są rozgałezione, dla przykładu
MUZYKA (0 WPISÓW)
-- MUZYKA POP (0 WPISÓW)
--- WYKONAWCA 1 (20 WPISÓW)
--- WYKONAWCA 2 (1 WPIS)
czyli powinno policzyć i pokazać ile zdjęc jest:
MUZYKA - 21
-- MUZYKA POP - 21
--- WYKONAWCA 1 - 20
--- WYKONAWCA 2 - 1
Dla muzyki pokazuje
1 20 0 0
Dla Muzyka Pop pokazuje
1 20 0
A dla wykonawca 1 pokazuje
20
A dla wykonawca 2 pokazuje
1
Mam nadzieje, ze teraz coś jaśnie ukazałem.
Sedziwoj
13.12.2006, 19:42:22
Masz to robione rekurencyjnie ale funkcja powinna zwracać wartość znalezioną wtedy możesz sumować to co jest w środku.
nordi
13.12.2006, 20:17:22
Nic to nie zmieniło, chyba ze robie źle, można więcej szzegołów i przykładów?
Ziels
13.12.2006, 22:12:53
A ja z innej beczki - zamiast miliona zapytań które zawdzięczasz rekurencji nie łatwiej zrzucić sobie tabelkę do tablicy php i operować na niej?
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.