Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Operacje matematyczne na wynkach zapytania SQL
Forum PHP.pl > Forum > Przedszkole
R.B.K.
Witam,

Szukam rozwiązania dla mojego problemu. Poniżej znajduje się skrypt pobierający dane z bazy i wyświetlający je w formie tabeli. Nie wiem jednak jak zrobić, aby w ostatniej kolumnie pojawiał się wynik mnożenia ilosc * cena_netto i żeby na końcu było podsumowanie całej kolumny. Macie jakieś pomysły ?

  1. <?php 
  2. include ("polaczenie.php");
  3. $zapytanie1 = "SELECT * FROM kontrahenci k, faktury_zakupu f, przyjecia_towarow p, jednost
    ki_miary j, waluty w WHERE w.id_waluty = p.waluta and j.id_jm = p.id_jm and k.id_
    kontrahenta = f.id_kontrahenta and p.id_faktury = f.id_faktury and data_zakupu >= '$data_od' and data_zakupu <= '$data_do' ORDER BY data_zakupu"
    ;
  4. $wynik = mysql_query($zapytanie1);
  5. if(mysql_num_rows($wynik) > 0) { 
  6. echo "<table cellpadding=\"2\" border=1 class=Style1>";
  7. echo "<tr>"; 
  8. echo "<td>Sprzedawca</td>"; 
  9. echo "<td>Nr faktury</td>"; 
  10. echo "<td>Nazwa towaru</td>";
  11. echo "<td>Data zakupu</td>";
  12. echo "<td>J.m.</td>"; 
  13. echo "<td>Ilość</td>"; 
  14. echo "<td>Waluta</td>"; 
  15.  echo "<td>Cena netto</td>"; 
  16. echo "<td>Wartość netto</td>"; 
  17. echo "</tr>"; 
  18. while($r = mysql_fetch_object($wynik)) { 
  19. echo "<tr>"; 
  20. echo "<td>".$r->nazwa_pelna."</td>"; 
  21. echo "<td>".$r->numer_faktury."</td>"; 
  22. echo "<td>".$r->nazwa_towaru."</td>"; 
  23. echo "<td>".$r->data_zakupu."</td>";
  24. echo "<td>".$r->jm."</td>";
  25. echo "<td>".$r->ilosc."</td>";
  26. echo "<td>".$r->waluta."</td>";
  27. echo "<td>".$r->cena_netto."</td>";
  28. echo "<td>?questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif</td>";
  29. echo "</tr>"; 
  30. } 
  31. echo "</table>"; 
  32. } 
  33. ?>
Cienki1980
No nie no to pytanie poniżej przeciętnej.
  1. <?php
  2. while($r = mysql_fetch_object($wynik)) { 
  3. $iloczyn=$r->ilosc*$r->cena_netto;
  4. echo "<tr>"; 
  5. echo "<td>".$r->nazwa_pelna."</td>"; 
  6. echo "<td>".$r->numer_faktury."</td>"; 
  7. echo "<td>".$r->nazwa_towaru."</td>"; 
  8. echo "<td>".$r->data_zakupu."</td>";
  9. echo "<td>".$r->jm."</td>";
  10. echo "<td>".$r->ilosc."</td>";
  11. echo "<td>".$r->waluta."</td>";
  12. echo "<td>".$r->cena_netto."</td>";
  13. echo "<td>".$iloczyn."</td>";
  14. echo "</tr>"; 
  15. }
  16. ?>
R.B.K.
Dzięki za szybką reakcję. Próbowałem podobnie ale nie użyłem kropek w wyrażeniu ".$iloczyn." i był błąd.
Nie wiem jednak jak zrobić podsumowanie całej kolumny na dole. Macie jakieś pomysły ?
AxZx
pelno pomyslow

np
  1. <?php
  2. $i=0;
  3. while(//...){
  4. $i++;
  5. }
  6. echo $i;
  7. ?>
Cienki1980
Cytat(AxZx @ 25.03.2008, 23:32:57 ) *
pelno pomyslow

np
  1. <?php
  2. $i=0;
  3. while(//...){
  4. $i++;
  5. }
  6. echo $i;
  7. ?>
Tak zrobisz podliczenie ilości wierszy .. a autorowi chodził o sumę ostatniej kolumny.

Można zrobić to podobnie jak AzZx z tym , że nie zwiększać zmiennej $i a dodawać do niej wartość $iloczyn.
AxZx
to byl tylko przyklad. nie chcialem dawac gotowego rozwiazania - niech autor sam nauczy sie myslec w tym jezyku.
marcim
Jestem dopiero początkujący, ucze się, ale czy nie możnaby podczas while od razu utworzyć jakąś zmeinną, i do niej cały czas dodawać cene_netto?
np:
  1. <?php
  2. ?php
  3. while($r = mysql_fetch_object($wynik)) { 
  4. $iloczyn=$r->ilosc*$r->cena_netto;
  5. echo "<tr>"; 
  6. echo "<td>".$r->nazwa_pelna."</td>"; 
  7. echo "<td>".$r->numer_faktury."</td>"; 
  8. echo "<td>".$r->nazwa_towaru."</td>"; 
  9. echo "<td>".$r->data_zakupu."</td>";
  10. echo "<td>".$r->jm."</td>";
  11. echo "<td>".$r->ilosc."</td>";
  12. echo "<td>".$r->waluta."</td>";
  13. echo "<td>".$r->cena_netto."</td>";
  14. echo "<td>".$iloczyn."</td>";
  15. echo "</tr>";
  16. $suma += $iloczyn; 
  17. }
  18. ?>
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.