Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: niesforny return w funkcji!
Forum PHP.pl > Forum > Przedszkole
fx69
  1. <?php
  2. function licz_brutto2($id_polacz, $check) {
  3. $vat_str = '';
  4. $netto_wart = '';
  5. $max = mysql_num_rows($id_polacz);
  6. $wartosc_koncowa = 0;
  7. $wartosc_koncowa_netto = 0;
  8. $wartosc_koncowa_detal = 0;
  9.  
  10. if($max != 0) {
  11. while($rowx = mysql_fetch_array($id_polacz)) {
  12. $vat_str .= $rowx[6].'-';  // vat
  13. $netto_wart .= $rowx[4] * $rowx[5] .'XX'; //ilosc * cena netto
  14. $sql = mysql_query("SELECT `cena_detal` FROM `towary` WHERE nazwa='$rowx[3]'") or die("Błąd w zapytaniu funkcji licz_brutto2");
  15. $rowy = mysql_fetch_array($sql);
  16. $wartosc_koncowa_detal += $rowy[0] * $rowx[4];
  17. $wartosc_koncowa_netto += $rowx[4] * $rowx[5];
  18.  
  19. }
  20.  
  21. $tablica_vat = explode("-", $vat_str);
  22. $tablica_netto = explode("XX", $netto_wart);
  23. for($i = 0; $i <= $max; $i++) 
  24. $netto[$tablica_vat[$i]] += $tablica_netto[$i];
  25.  
  26. while(list($key, $value) = each($netto))
  27. $wartosc_koncowa += $value + ($key/100) * $value;  //  pkt 1
  28.  
  29. if(!$check) return $wartosc_koncowa; //  pkt 2
  30. else if($check == 2) return $wartosc_koncowa_detal;
  31. else if($check == 1) return $wartosc_koncowa_netto;
  32. else return "Zły parametr funkcji";
  33. }
  34. else return NULL;
  35. }
  36. ?>


gapie sie w ta funkcje juz ponad godzine i nie potrafie znalezc bledu...
chodzi o to, ze w punkcie 1, wsadzajac przed $wartosc_koncowa echo, wyswietla obliczane wartosci. za to w punkcie 2 wszystkie wartosci rowne sa 0. dlaczego tak sie dzieje ? co tu jest zle ?
krzysiekk
zobacz czy jest $check tzn czy ma do czego porownac

ten zapis powinien chyba tak wygladac
  1. <?
  2.  
  3. if(!$check) {$w=$wartosc_koncowa;} //  pkt 2
  4. else if($check == 2) {$w= $wartosc_koncowa_detal;}  
  5. else if($check == 1) {$w=$wartosc_koncowa_netto;}
  6. else { $w="Zły parametr funkcji"; }
  7. return $w;
  8. }
  9. ?>
fx69
niestety to nie to...
parametr jest dobrze przekazywany do funkcji...

jak juz wyjdzie na jaw gdzie jest ten blad, wydrukuje zrodlo z odpowiednim komentarzem i powiesze sobie na drzwiach w pokoju angrysmiley.gif
miska
  1. <?php
  2. function licz_brutto2($check) {
  3. $wartosc_koncowa=0;
  4. $wartosc_koncowa_detal=1000;
  5. $key=22;
  6. $value=100;
  7. $wartosc_koncowa += $value + ($key/100) * $value;  //  pkt 1  
  8.  if(!$check) return $wartosc_koncowa; //  pkt 2
  9.  else if($check == 2) return $wartosc_koncowa_detal;
  10.  else if($check == 1) return $wartosc_koncowa_netto;  
  11. else return "Zły parametr funkcji";
  12. }
  13.  echo licz_brutto2($check=NULL);
  14. ?>


zrobilem to w wielkim skrócie i mi dziala ...
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.