Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Skrypt do liczenia utargów
Forum PHP.pl > Forum > Przedszkole
oSa
Piszę skrypt do liczenia utargów pewnej gastronomii.

W jednej tabeli przechowuje produkty, w drugiej zamowienia.
Tabele wyglądają tak:

produkty: id|title|cena
zamowienia: id|produkt_id|ilosc|data

Chcę zrobić dzienne podsumowania, wyliczam sobie ze wartosc = cena*ilosc. Mam problem z podsumowaniem wszystkich wartosci (chcę je dodać), uzyskując utarg dzienny.

Zdaje sobie sprawę, że to pewnie banalna rzecz, mam nadzieje na pomoc gdyż dawno nie pisałem nic w php, a musze napisać ten skrypt. Licze na pomoc, mam nadzieje ze wytlumaczylem klarownie o co mi chodzi : )
Pozdro

wyglada to dokladnie tak:
  1. <?php
  2. echo "<h6>Podsumowanie dnia <strong>$dzien</strong></h6>
  3. <table ><tr><td>Produkt</td><td>Ilosc</td><td>Wartosc</td></tr>
  4. ";
  5.  
  6.  
  7. $sel_z = mysql_query("SELECT * FROM zamowienia where data='$dzien' ");
  8. while ($b = mysql_fetch_array($sel_z))
  9. {
  10. $sel_p = mysql_query("SELECT * FROM produkty where id='$b[produkt_id]'");
  11. while ($c = mysql_fetch_array($sel_p))
  12. {
  13. $wartosc = $c[cena] * $b[ilosc];
  14. echo "<tr><td>$c[title]</td><td>$b[ilosc]</td><td>$wartosc</td></tr>";
  15. }
  16.  
  17. }
  18. ?>


i chodzi mi o zliczenie $wartosc (wszystkich wartosci)


-------------------------
ponieważ dostałeś już odpowiedzi
nie zamknę wątku ale dodam
odpowiedni [tag] do tematu
na przyszłość o tym pamiętaj
~Cienki1980
mrjozo
  1. <?php
  2. $sum = 0;
  3. while ($c = mysql_fetch_array($sel_p))
  4. {
  5. $wartosc = $c[cena] * $b[ilosc];
  6. $sum += $wartosc;
  7. echo "<tr><td>$c[title]</td><td>$b[ilosc]</td><td>$wartosc</td></tr>";
  8. }
  9. ?>
oSa
troche nie rozumiem tego co napisałeś.

Ja chcę dodać wszystkie wartości $wartosc, żeby uzyskać całą kwotę utargu.

To wszystko jest w pętli (bo pobierane z bazy) dlatego mam z tym problem
mrjozo
Na początku ustawiam sobie $sum na 0, czyli caly utarg jest 0. Potem przy każdym liczeniu wartości, dodaję do $sum tą wartość.

  1. <?php
  2. $sum += $wartosc;
  3. ?>
to skrócony zapis od
  1. <?php
  2. $sum = $sum + $wartosc;
  3. ?>


Po wyjsciu z petli w zmiennej $sum masz zsumowane wszystkie wartości.
oSa
Faktycznie to jak najbardziej dobre rozwiązanie, jednak nie działa u mnie : /

Utarg wyświetla się 20, wygląda jakby uznał tylko ostatnią wartość (ona wynosi 20).

Oto cały kod:
  1. <?php
  2. echo "<h6>Podsumowanie dnia <strong>$dzien</strong></h6>
  3. <table ><tr><td>Produkt</td><td>Ilosc</td><td>Wartosc</td></tr>
  4. ";
  5.  
  6.  
  7. $sel_z = mysql_query("SELECT * FROM zamowienia where data='$dzien' ");
  8. while ($b = mysql_fetch_array($sel_z))
  9. {
  10. $sel_p = mysql_query("SELECT * FROM produkty where id='$b[produkt_id]'");
  11. $sum = 0;
  12. while ($c = mysql_fetch_array($sel_p))
  13. {
  14. $wartosc = $c[cena] * $b[ilosc];
  15.  
  16. $sum = $sum + $wartosc;
  17.  
  18. echo "<tr><td>$c[title]</td><td>$b[ilosc]</td><td>$wartosc</td></tr>";
  19. }
  20.  
  21. }
  22. echo "</table>
  23. <h2>Utarg: $sum </h2>
  24.  
  25. ";
  26. ?>
mrjozo
Dlatego bo zerowałeś $sum przy każdym zamówieniu...
Daj $sum przed pierwszą pętle
  1. <?php
  2. $sel_z = mysql_query("SELECT * FROM zamowienia where data='$dzien' ");
  3. $sum = 0;
  4. while ($b = mysql_fetch_array($sel_z))
  5. {
  6. $sel_p = mysql_query("SELECT * FROM produkty where id='$b[produkt_id]'");
  7.  
  8. while ($c = mysql_fetch_array($sel_p))
  9. {
  10. $wartosc = $c[cena] * $b[ilosc];
  11.  
  12. $sum = $sum + $wartosc;
  13.  
  14. echo "<tr><td>$c[title]</td><td>$b[ilosc]</td><td>$wartosc</td></tr>";
  15. }
  16.  
  17. }
  18. echo "</table>
  19. <h2>Utarg: $sum </h2>
  20.  
  21. ";
  22. ?>
oSa
faktycznie, ślepy jestem.

wielkie dzięki
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.