Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Sumowanie wyników obliczonych w locie
Forum PHP.pl > Forum > PHP
yoga
Witam.
Bardzo proszę o podpowiedź.
Generuję sobie tabelkę z wynikami zapytania do bazy danych, wygląda ona mniej więcej tak:
+------------------------------------------+
| wysokość | szerokość | obwód | cena |
+------------------------------------------+
| 625 | 1250 | 3.75 | 67,5 |
| 234 | 568 | 1,604 | 48,12 |
+------------------------------------------+

Wysokość i szerokość są pobierane z bazy a obwód i cena są wyliczane w pętli while w locie.
Teraz chciałbym zsumować obwód i cenę.
Proszę naprowadźcie mnie na jakiś sposób, bo myślę nad tym i nie bardzo wiem jak to ugryźć.
Ilware
nie wiem czy o to Ci chodzi ale stwórz sobie zmienne pomocnicze i tak to zsumuj

  1. $suma = 0;
  2. while( costam ){
  3. $suma += $obwod + $cena;
  4. }
  5.  


yoga
chodzi mi bardziej o cena1+cena2+cena3........ itd
Agape
Jako ze nie podales zadnego zapytania sql, przerob sobie
SELECT (`obwod`+`cena`) as costam FROM `baza` limit 3

Co do pierwszej odpowiedzi, wystarczy przeciez przerzucic wynik do tablicy, dac w foreach i juz masz cena1,2,3 itd
yoga
Może to rozjaśni moje pytanie.
  1. function Kalkulator() {
  2. $klient=mysql_query("SELECT * FROM zam_klient WHERE id=".$_GET['klient']."");
  3. $odp_kl=mysql_fetch_array($klient);
  4. echo '<table>';
  5. echo '<tr><td>Zamówienie nr:</td><td><strong>'.$odp_kl['id'].'</strong></td></tr>';
  6. echo '<tr><td>Nazwisko:</td><td><strong>'.$odp_kl['nazwa'].'</strong></td></tr>';
  7. echo '<tr><td>Adres:</td><td><strong>'.$odp_kl['adres'].'</strong></td></tr>';
  8. echo '<tr><td>Telefon:</td><td><strong>'.$odp_kl['tel'].'</strong></td></tr>';
  9. echo '</table>';
  10.  
  11. $firma = $odp_kl['hurt'];
  12.  
  13. $sql=mysql_query("SELECT * FROM zam_item WHERE id_klienta=".$_GET['klient']."");
  14. echo '<table border="1">
  15. <tr><td>szer.</td><td>wys</td><td>szt.</td><td>kolor</td><td>licowane</td><td>rygiel</td><td>status</td><td>Data dodania</td><td>mb</td><td>Cena</td></tr>';
  16. while ($odp=mysql_fetch_array($sql)) {
  17. echo '<tr><td>'.$odp['szer'].'</td><td>'.$odp['wys'].'</td><td>'.$odp['szt'].'</td><td>';
  18. switch ($odp['kolor']) {
  19. case "BIA":
  20. {
  21. echo 'Białe';
  22. break;
  23. }
  24. case "CBR":
  25. {
  26. echo 'C. Brąz';
  27. break;
  28. }
  29. case "RZD":
  30. {
  31. echo 'RAL Złoty Dąb';
  32. break;
  33. }
  34. case "ROR":
  35. {
  36. echo 'RAL Orzech';
  37. break;
  38. }
  39. case "RMA":
  40. {
  41. echo 'RAL Mahoń';
  42. break;
  43. }
  44. case "DZD":
  45. {
  46. echo 'Złoty Dąb';
  47. break;
  48. }
  49. case "DOR":
  50. {
  51. echo 'Orzech';
  52. break;
  53. }
  54. case "DMA":
  55. {
  56. echo 'Mahoń';
  57. break;
  58. }
  59. }
  60.  
  61.  
  62. echo '</td><td>';
  63. if ($odp['lico']==0) {
  64. echo '';
  65. } else {
  66. echo 'X';
  67. }
  68.  
  69. echo '</td><td>'.$odp['rygiel'].'</td><td>';
  70. if ($odp['status']==0) {
  71. echo 'nowe';
  72. } elseif ($odp['status']==1) {
  73. echo 'produkcja';
  74. } elseif ($odp['status']==2) {
  75. echo 'zrobione';
  76. } elseif ($odp['status']==3) {
  77. echo 'zakończone';
  78. }
  79.  
  80. echo '</td><td>'.$odp['data'].'</td><td>';
  81. $szt = $odp['szt'];
  82. $szer = $odp['szer'] * 0.001 * 2;
  83. $wys = $odp['wys'] * 0.001 * 2;
  84.  
  85. $obwod = ($szer + $wys) * $szt;
  86. echo ''.$obwod.'</td><td>';
  87. if ($firma == 0) {
  88. switch ($odp['kolor']) {
  89. case "BIA":
  90. {
  91. $cena = $obwod * 18;
  92. echo $cena;
  93. break;
  94. }
  95. case "CBR":
  96. {
  97. $cena = $obwod * 18;
  98. echo $cena;
  99. break;
  100. }
  101. case "RZD":
  102. {
  103. $cena = $obwod * 23;
  104. echo $cena;
  105. break;
  106. }
  107. case "ROR":
  108. {
  109. $cena = $obwod * 23;
  110. echo $cena;
  111. break;
  112. }
  113. case "RMA":
  114. {
  115. $cena = $obwod * 23;
  116. echo $cena;
  117. break;
  118. }
  119. case "DZD":
  120. {
  121. $cena = $obwod * 30;
  122. echo $cena;
  123. break;
  124. }
  125. case "DOR":
  126. {
  127. $cena = $obwod * 30;
  128. echo $cena;
  129. break;
  130. }
  131. case "DMA":
  132. {
  133. $cena = $obwod * 30;
  134. echo $cena;
  135. break;
  136. }
  137. }
  138. } else {
  139. switch ($odp['kolor']) {
  140. case "BIA":
  141. {
  142. $cena = $obwod * 12;
  143. echo $cena;
  144. break;
  145. }
  146. case "CBR":
  147. {
  148. $cena = $obwod * 12;
  149. echo $cena;
  150. break;
  151. }
  152. case "RZD":
  153. {
  154. $cena = $obwod * 17;
  155. echo $cena;
  156. break;
  157. }
  158. case "ROR":
  159. {
  160. $cena = $obwod * 17;
  161. echo $cena;
  162. break;
  163. }
  164. case "RMA":
  165. {
  166. $cena = $obwod * 17;
  167. echo $cena;
  168. break;
  169. }
  170. case "DZD":
  171. {
  172. $cena = $obwod * 24;
  173. echo $cena;
  174. break;
  175. }
  176. case "DOR":
  177. {
  178. $cena = $obwod * 24;
  179. echo $cena;
  180. break;
  181. }
  182. case "DMA":
  183. {
  184. $cena = $obwod * 24;
  185. echo $cena;
  186. break;
  187. }
  188. }
  189.  
  190. echo '</td></tr>';
  191. }
  192.  
  193.  
  194. }
  195. echo '</table>';
  196. }
  197.  
Ilware
dodaj do pętli

  1. $cena += $cena;


będzie sumowało, ew. uściślij co chcesz sumować dokładnie które zmienne w kodzie

p.s.

jak możesz pozbądź się $_GET z zapytania, albo przynajmniej je odfiltruj
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.