Witam,
generuję potwierdzenia zapłaty do pliku PDF, jeśli jest jeden dokument to wszystko ładnie działa, ale jeśli potrzebuję wygenerować więcej niż jeden to już mam problem.
Interpreter niestety nie pokazuje mi gdzie jest błąd, postaram się go opisać:
jest dobrze jeśli:
$slownie = "SELECT ABS(kwota) as kwotabrutto from kasa WHERE id_kasa='$id_kasa'"; $wynikslownie = http://www.php.net/mysql_query($slownie) or http://www.php.net/die('Queryproblem: '.http://www.php.net/mysql_error()); while($vv = http://www.php.net/mysql_fetch_array($wynikslownie)) { function slownie ($kw) { $t_a = http://www.php.net/array('','sto','dwieście','trzysta','czterysta','pięćset','sześćset','siedemset','osiemset','dziewięćset'); $t_b = http://www.php.net/array('','dziesięć','dwadzieścia','trzydzieści','czterdzieści','pięćdziesiąt','sześćdziesiąt','siedemdziesiąt','osiemdziesiąt','dziewięćdziesiąt'); $t_c = http://www.php.net/array('','jeden','dwa','trzy','cztery','pięć','sześć','siedem','osiem','dziewięć'); $t_d = http://www.php.net/array('dziesięć','jedenaście','dwanaście','trzynaście','czternaście','piętnaście','szesnaście','siednaście','osiemnaście','dziewiętnaście'); $t_kw_15 = http://www.php.net/array('septyliard','septyliardów','septyliardy'); $t_kw_14 = http://www.php.net/array('septylion','septylionów','septyliony'); $t_kw_13 = http://www.php.net/array('sekstyliard','sekstyliardów','sekstyliardy'); $t_kw_12 = http://www.php.net/array('sekstylion','sekstylionów','sepstyliony'); $t_kw_11 = http://www.php.net/array('kwintyliard','kwintyliardów','kwintyliardy'); $t_kw_10 = http://www.php.net/array('kwintylion','kwintylionów','kwintyliony'); $t_kw_9 = http://www.php.net/array('kwadryliard','kwadryliardów','kwaryliardy'); $t_kw_8 = http://www.php.net/array('kwadrylion','kwadrylionów','kwadryliony'); $t_kw_7 = http://www.php.net/array('tryliard','tryliardów','tryliardy'); $t_kw_6 = http://www.php.net/array('trylion','trylionów','tryliony'); $t_kw_5 = http://www.php.net/array('biliard','biliardów','biliardy'); $t_kw_4 = http://www.php.net/array('bilion','bilionów','bilony'); $t_kw_3 = http://www.php.net/array('miliard','miliardów','miliardy'); $t_kw_2 = http://www.php.net/array('milion','milionów','miliony'); $t_kw_1 = http://www.php.net/array('tysiąc','tysięcy','tysiące'); $t_kw_0 = http://www.php.net/array('złoty','złotych','złote'); if ($kw!='') { $kw=(http://www.php.net/substr_count($kw,'.')==0) ? $kw.'.00':$kw; $tmp=http://www.php.net/explode(".",$kw); $ln=http://www.php.net/strlen($tmp[0]); $tmp_a=($ln%3==0) ? (http://www.php.net/floor($ln/3)*3):((http://www.php.net/floor($ln/3)+1)*3); for($i = $ln; $i < $tmp_a; $i++) { $l_pad .= '0'; $kw_w = $l_pad . $tmp[0]; } $kw_w=($kw_w=='') ? $tmp[0]:$kw_w; $paczki=(http://www.php.net/strlen($kw_w)/3)-1; $p_tmp=$paczki; for($i=0;$i<=$paczki;$i++) { $t_tmp='t_kw_'.$p_tmp; $p_tmp--; $p_kw=http://www.php.net/substr($kw_w,($i*3),3); $kw_w_s=($p_kw{1}!=1) ? $t_a[$p_kw{0}].' '.$t_b[$p_kw{1}].' '.$t_c[$p_kw{2}]:$t_a[$p_kw{0}].' '.$t_d[$p_kw{2}]; if(($p_kw{0}==0)&&($p_kw{2}==1)&&($p_kw{1}<1)) $ka=${$t_tmp}[0]; //możliwe że $p_kw{1}!=1 else if (($p_kw{2}>1 && $p_kw{2}<5)&&$p_kw{1}!=1) $ka=${$t_tmp}[2]; else $ka=${$t_tmp}[1]; $kw_slow.=$kw_w_s.' '.$ka.' '; } } $text = $kw_slow.' '.$tmp[1].'/100 gr.'; return $text; } $slowniekwota = slownie(($vv[kwotabrutto])); } require ('../../../global/mpdf/mpdf.php'); $mpdf=new mPDF('utf-8', 'A4', 0, '', 10, 10, 10, 0, 0, 0); $mpdf->defaultfooterfontsize=1; $mpdf->defaultfooterfontstyle='I'; $mpdf->defaultfooterline=0; $mpdf->allow_charset_conversion=true; $mpdf->charset_in='UTF-8'; $naglowek = ' <head> <style type="text/css"> table {border-collapse: collapse} </style> </head> <html> <body> <table width="100%" border="1" style="background-color: #fbfbf7"> <tr>'; if($r[rodzaj]=='KP') { $naglowek .= ' <td colspan="5" align ="center" style="background-color: #a5a2a2"> <font size="5"><b>Dowód WPŁATY - pokwitowanie</b></font>'; } ........
$drukuj = $_POST[drukuj]; foreach ($drukuj as $id_kasa) { $slownie = "SELECT ABS(kwota) as kwotabrutto from kasa WHERE id_kasa='$id_kasa'"; $wynikslownie = http://www.php.net/mysql_query($slownie) or http://www.php.net/die('Queryproblem: '.http://www.php.net/mysql_error()); while($vv = http://www.php.net/mysql_fetch_array($wynikslownie)) { function slownie ($kw) { $t_a = http://www.php.net/array('','sto','dwieście','trzysta','czterysta','pięćset','sześćset','siedemset','osiemset','dziewięćset'); $t_b = http://www.php.net/array('','dziesięć','dwadzieścia','trzydzieści','czterdzieści','pięćdziesiąt','sześćdziesiąt','siedemdziesiąt','osiemdziesiąt','dziewięćdziesiąt'); $t_c = http://www.php.net/array('','jeden','dwa','trzy','cztery','pięć','sześć','siedem','osiem','dziewięć'); $t_d = http://www.php.net/array('dziesięć','jedenaście','dwanaście','trzynaście','czternaście','piętnaście','szesnaście','siednaście','osiemnaście','dziewiętnaście'); $t_kw_15 = http://www.php.net/array('septyliard','septyliardów','septyliardy'); $t_kw_14 = http://www.php.net/array('septylion','septylionów','septyliony'); $t_kw_13 = http://www.php.net/array('sekstyliard','sekstyliardów','sekstyliardy'); $t_kw_12 = http://www.php.net/array('sekstylion','sekstylionów','sepstyliony'); $t_kw_11 = http://www.php.net/array('kwintyliard','kwintyliardów','kwintyliardy'); $t_kw_10 = http://www.php.net/array('kwintylion','kwintylionów','kwintyliony'); $t_kw_9 = http://www.php.net/array('kwadryliard','kwadryliardów','kwaryliardy'); $t_kw_8 = http://www.php.net/array('kwadrylion','kwadrylionów','kwadryliony'); $t_kw_7 = http://www.php.net/array('tryliard','tryliardów','tryliardy'); $t_kw_6 = http://www.php.net/array('trylion','trylionów','tryliony'); $t_kw_5 = http://www.php.net/array('biliard','biliardów','biliardy'); $t_kw_4 = http://www.php.net/array('bilion','bilionów','bilony'); $t_kw_3 = http://www.php.net/array('miliard','miliardów','miliardy'); $t_kw_2 = http://www.php.net/array('milion','milionów','miliony'); $t_kw_1 = http://www.php.net/array('tysiąc','tysięcy','tysiące'); $t_kw_0 = http://www.php.net/array('złoty','złotych','złote'); if ($kw!='') { $kw=(http://www.php.net/substr_count($kw,'.')==0) ? $kw.'.00':$kw; $tmp=http://www.php.net/explode(".",$kw); $ln=http://www.php.net/strlen($tmp[0]); $tmp_a=($ln%3==0) ? (http://www.php.net/floor($ln/3)*3):((http://www.php.net/floor($ln/3)+1)*3); for($i = $ln; $i < $tmp_a; $i++) { $l_pad .= '0'; $kw_w = $l_pad . $tmp[0]; } $kw_w=($kw_w=='') ? $tmp[0]:$kw_w; $paczki=(http://www.php.net/strlen($kw_w)/3)-1; $p_tmp=$paczki; for($i=0;$i<=$paczki;$i++) { $t_tmp='t_kw_'.$p_tmp; $p_tmp--; $p_kw=http://www.php.net/substr($kw_w,($i*3),3); $kw_w_s=($p_kw{1}!=1) ? $t_a[$p_kw{0}].' '.$t_b[$p_kw{1}].' '.$t_c[$p_kw{2}]:$t_a[$p_kw{0}].' '.$t_d[$p_kw{2}]; if(($p_kw{0}==0)&&($p_kw{2}==1)&&($p_kw{1}<1)) $ka=${$t_tmp}[0]; //możliwe że $p_kw{1}!=1 else if (($p_kw{2}>1 && $p_kw{2}<5)&&$p_kw{1}!=1) $ka=${$t_tmp}[2]; else $ka=${$t_tmp}[1]; $kw_slow.=$kw_w_s.' '.$ka.' '; } } $text = $kw_slow.' '.$tmp[1].'/100 gr.'; return $text; } $slowniekwota = slownie(($vv[kwotabrutto])); } require ('../../../global/mpdf/mpdf.php'); $mpdf=new mPDF('utf-8', 'A4', 0, '', 10, 10, 10, 0, 0, 0); $mpdf->defaultfooterfontsize=1; $mpdf->defaultfooterfontstyle='I'; $mpdf->defaultfooterline=0; $mpdf->allow_charset_conversion=true; $mpdf->charset_in='UTF-8'; $naglowek = ' <head> <style type="text/css"> table {border-collapse: collapse} </style> </head> <html> <body> <table width="100%" border="1" style="background-color: #fbfbf7"> <tr>'; if($r[rodzaj]=='KP') { $naglowek .= ' <td colspan="5" align ="center" style="background-color: #a5a2a2"> <font size="5"><b>Dowód WPŁATY - pokwitowanie</b></font>'; } ........ }
Przenieś funkcję "slownie" poza pętlę while.
I włącz raportowanie błędów.
Tak, to było to, dziękuję
Po za pętlę foreach() także należy przenieść.
W ogóle przygotowujesz się na tak dużą inflację, że będzie potrzeba używać tak ekstremalnych nazw liczb?
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)