Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z funkcją rekurencyjną
Forum PHP.pl > Forum > PHP
mihow
Witajcie wszyscy zainteresowani!
Robię sobie sklepik na swojej stronie i mam kilka funkcji. Wszystkie mi działają z wyjątkiem jednej bardzo prostej - funkcji zliczającej sumę pieniężną wszystkich produktów w koszyku. Postaram się to wam jakoś przedstawić:

Zawartość koszyka przechowuję w tabeli "koszyk":
ID_KOSZYKA,
ID_TOWARU,
ILOSC


Cena danego towaru przechowywana jest w innej tabeli. Jego cenę pobieram za pomocą funkcji CenaTowaru();
I teraz mam funkcję, która powinna zliczać łączną sumę towarów z koszyka:

  1. <?php
  2. function SumaKoszyka($kwota=0) {
  3. $zawartosc=mysql_query(&#092;"pobieram towary z koszyka\");
  4. while($pole=mysql_fetch_array($zawartosc)) {
  5. $suma=($pole[&#092;"ILOSC\"]*CenaTowaru($pole[\"ID_TOWARU\"]))+$kwota;
  6. echo $suma.'<br>';
  7. SumaKoszyka($suma);
  8. }
  9. }
  10.  
  11. SumaKoszyka();
  12. ?>


Dlaczego ta funkcja nie działa?

Michał
nospor
wow jestem pod wrażeniem. hihi
domyslam się żze ci się zapętla. Po co tu rekurencja? Masz liniową tabelę, rekurencji tu nie trzeba.
  1. <?php
  2.  
  3. function SumaKoszyka() {
  4. $suma = 0;
  5. $zawartosc=mysql_query(&#092;"pobieram towary z koszyka\");
  6. while($pole=mysql_fetch_array($zawartosc))
  7. $suma+=($pole[&#092;"ILOSC\"]*CenaTowaru($pole[\"ID_TOWARU\"]));
  8. echo $suma.'<br>';
  9. }
  10.  
  11. SumaKoszyka();
  12.  
  13. ?>

Poza tym takie rzeczy załatwia się jednym zapytaniem, ale to już inna bajka.
mihow
Czyli jakim zapytaniem?
Możesz mi napisać?
nospor
  1. SELECT sum(tabela1.ilosc*tabela2.cena)
  2. FROM tabela1, tabela2 WHERE tabela1.id_towaru=tabela2.id_towaru
Wstaw se teraz twoje tabele i pola i powinno dzialac
mihow
OK. Wielkie dzięki za pomoc.
Wszystko teraz działa smile.gif
Bakus
nie to forum!

Algorytmy, klasy, funkcje -> php
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.