Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> niesforny return w funkcji!
fx69
post 18.12.2006, 23:58:50
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 8.10.2006
Skąd: świat astralny

Ostrzeżenie: (0%)
-----


  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 ?

Ten post edytował fx69 19.12.2006, 00:01:48
Go to the top of the page
+Quote Post
krzysiekk
post 19.12.2006, 02:17:55
Post #2





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 13.03.2006
Skąd: Jaworze

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
fx69
post 19.12.2006, 23:38:58
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 8.10.2006
Skąd: świat astralny

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
miska
post 6.05.2007, 01:06:11
Post #4





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 23.11.2003

Ostrzeżenie: (0%)
-----


  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 ...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 20:10