Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] obliczenie sumy
Forum PHP.pl > Forum > Przedszkole
egdstudio
witam

mam maly problem z uzyskaniem sumy w ponizszej funkcji. w obrebie funkcji nie moge otrzymac wyniku z funkcji suma czy moze jest inny sposob na otrzymanie tego wyniku?

  1. function tep_draw_radio_menu($name, $values, $default = '', $parameters = '', $required = false) {
  2. $field ='<table border="0" cellspacing="0" cellpadding="0"><tr><td class="main">';
  3. if (empty($default) && isset($GLOBALS[$name])) $default = stripslashes($GLOBALS[$name]);
  4.  
  5. for ($i=0, $n=sizeof($values); $i<$n; $i++) {
  6. $value = tep_output_string($values[$i]['id']);
  7. $field .= '<input type="radio" name="' . $name . '" value="' . $value . '"';
  8. if ($i == 0) $field .= ' checked';
  9.  
  10. $field .= '>' . tep_output_string($values[$i]['text'], array('"' => '&quot;', '\'' => ''', '<' => '&lt;', '>' => '&gt;')) . ' razem: ';
  11. $subject= $name;
  12. $patern='#[0-9]+#i';
  13. preg_match($patern, $subject, $matches);
  14. $wartosc=tep_db_query("select * from products_attributes where products_id='".$matches[0]."' and options_values_id='".$value."'");
  15. while($wartosc_atr=tep_db_fetch_array($wartosc)){
  16. $field.=''.number_format($wartosc_atr['options_values_price'],2).''.$wartosc_atr['price_prefix'].'';
  17. }
  18. $product_info_query1 = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . $matches[0] . "' and pd.products_id = p.products_id and pd.language_id = '4'");
  19.  
  20. while($product_info1 = tep_db_fetch_array($product_info_query1)){
  21. $field.=''.number_format($product_info1['products_price'],2).'';
  22. }
  23.  
  24.  
  25. $field.= ''. suma($wartosc_atr['options_values_price'],$product_info1['products_price']).'';
  26. }
  27. $field .= '</td></tr></table>';
  28.  
ToAr
a jak wygląda funkcja suma()?

jesli zwraca zmienną, to spróbuj do funkcji

  1. function tep_draw_radio_menu($name, $values, $default = '', $parameters = '', $required = false) {


dodać ją jako zmienną globalną

  1. function tep_draw_radio_menu($name, $values, $default = '', $parameters = '', $required = false) {
  2. global $zmienna;
egdstudio
zwykla suma
  1. function suma($zmienna1, $zmienna2){
  2. return $zmienna1+$zmienna2;
  3. }
ToAr
a działa, gdy

  1. $field.= ''. suma($wartosc_atr['options_values_price'],$product_info1['products_price']).'';


zamienisz na

  1. $field.= '$wartosc_atr['options_values_price'] + $product_info1['products_price'];
egdstudio
nie, wyswietla tylko dzialanie a nie wynik
Ghost_78
a co Ci się wyświetla jak dasz w tamtym miejscu:
  1. echo 'SUMA: '.($wartosc_atr['options_values_price'] + $product_info1['products_price']);
egdstudio
  1. suma: 0


Ghost_78
Jeżeli dobrze zrozumiałem Twoje zamiary to chcesz wszystko podsumować.
Jak dla mnie to musisz troche przerobic:

  1. while($wartosc_atr=tep_db_fetch_array($wartosc)){
  2. $field.=''.number_format($wartosc_atr['options_values_price'],2).''.$wartosc_atr['price_prefix'].'';
  3. $sumaPrice+=$wartosc_atr['options_values_price'];
  4. }


  1. while($product_info1 = tep_db_fetch_array($product_info_query1)){
  2. $field.=''.number_format($product_info1['products_price'],2).'';
  3. $sumaProdPrice+=$product_info1['products_price'];
  4. }


i dopiero na koncu:
  1. $field.= suma($sumaPrice,$sumaProdPrice);


Jak dla mnie to suma w tym co napisałeś działa dobrze. Problem w tym, że parametry, które przekazujesz zawierają 0.
Jeżeli to co napisałem nie działa tak jak powinno to napisz co dokładnie chcesz zsumować.
egdstudio
przed pętlami dołożyłem

  1. $sumaPrice=0; $sumaProdprice=0;


i zaczyna liczyć prawidłowo, bez tego podwaja wynik, ale jest już ok.

Temat do zamknięcia

Dziekuję za pomoc
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.