请您帮助我计算并显示我的表中名为"prime"的列行的总和值,该列是使用TCPDF在 PDF 报告中创建的(数据正在从我的数据库中提取(。 提前谢谢你。如果您能帮助我,我将不胜感激。 在此链接中更好地描述我的结果表 我的代码的主要部分是这样的:
<?php
set_time_limit(0);
tcpdf();
// create new PDF document
$pdf = new TCPDF('L', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// remove default header/footer
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
// set default monospaced font
//$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
//$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language dependent data:
$lg = Array();
$lg['a_meta_charset'] = 'UTF-8';
$lg['a_meta_dir'] = 'rtl';
$lg['a_meta_language'] = 'fa';
$lg['w_page'] = 'page';
// set some language-dependent strings (optional)
$pdf->setLanguageArray($lg);
// ---------------------------------------------------------
// add a page
$pdf->AddPage();
$pdf->SetXY(16, 10);
// set document information
$pdf->SetCreator(PDF_CREATOR);
//$pdf->SetAuthor('Nicola Asuni');
//$pdf->SetSubject('TCPDF Tutorial');
//$pdf->SetKeywords('TCPDF, PDF, example, navettes, guide');
// set default header data
//$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.'', PDF_HEADER_STRING);
$pdf->setPrintHeader(false);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$pdf->setRTL(true);
$pdf->SetFont('xzar', '', 10);
$sql= "SELECT * FROM nav_agent WHERE matricule='$mat'";
$query = $this->db->query($sql);
$saut=0;
$tbl = '<table cellspacing="0" cellpadding="1" border="1">
<thead>
<tr>
<th style="border: 1px double #000000; text-align:center;" colspan="2">الإذن </th>
<th style="border: 1px double #000000; text-align:center;" colspan="2">التنقل</th>
<th style="border: 1px double #000000; text-align:center;" colspan="2">التوقيت</th>
<th style="border: 1px double #000000; text-align:center;" colspan="4"> </th>
</tr>
<tr>
<td style="border: 1px double #000000; text-align:center;">العدد</td>
<td style="border: 1px double #000000; text-align:center;">التاريخ</td>
<td style="border: 1px double #000000; text-align:center;">من</td>
<td style="border: 1px double #000000; text-align:center;">إلى</td>
<td style="border: 1px double #000000; text-align:center;">الإنطلاق</td>
<td style="border: 1px double #000000; text-align:center;">الرجوع</td>
<td style="border: 1px double #000000; text-align:center;">المدة المقضاة (بالساعة)</td>
<td style="border: 1px double #000000; text-align:center;"> مبلغ منحة التنقل </td>
<td style="border: 1px double #000000; text-align:center;">رقم السيارة</td>
</tr>
';
$prime=0;
foreach ($query->result() as $row){
$sql1 = "SELECT * FROM fiche_nav WHERE id_navette='$row->id_navette'";
$query1 = $this->db->query($sql1);
foreach ($query1->result() as $row1){
$delai = strtotime($row1->heureret) - strtotime($row1->heuredep);
$time_h = ($delai/60)/60;
if ($val_grade == 'A1' or $val_grade == 'A2')
$montant1 = 15.000;
else
if ($val_grade == 'A3' or $val_grade == 'B'
or $val_grade =='ouv cat 8' or $val_grade =='ouv cat 9' or $val_grade =='ouv cat 10')
$montant1 = 9.000;
else
if ($val_grade == 'C' or $val_grade == 'D'
or $val_grade =='ouv cat 1' or $val_grade =='ouv cat 2' or $val_grade =='ouv cat 3'
or $val_grade =='ouv cat 4' or $val_grade =='ouv cat 5' or $val_grade =='ouv cat 6' or $val_grade =='ouv cat 7')
$montant1 = 6.750;
if ($val_grade == 'A1' or $val_grade == 'A2')
$montant2 = 35.000;
else
if ($val_grade == 'A3' or $val_grade == 'B'
or $val_grade =='ouv cat 8' or $val_grade =='ouv cat 9' or $val_grade =='ouv cat 10')
$montant2 = 25.000;
else
if ($val_grade == 'C' or $val_grade == 'D'
or $val_grade =='ouv cat 1' or $val_grade =='ouv cat 2' or $val_grade =='ouv cat 3'
or $val_grade =='ouv cat 4' or $val_grade =='ouv cat 5' or $val_grade =='ouv cat 6' or $val_grade =='ouv cat 7')
$montant2 = 18.000;
if ( $time_h <= 7 )
$prime = 0;
else
if ( $time_h >7 && $time_h <= 14 )
$prime = 0.5 * $montant1;
else
if ( $time_h >14 && $time_h < 24 )
$prime = $montant1;
else
if ( $time_h >=24 )
$prime = $montant2;
$tbl=$tbl. '<tr>
<td style="border: 0px solid #000000; text-align:center"></td>
<td style="border: 0px solid #000000; text-align:center">'. $row1->datedep .'</td>
<td style="border: 0px solid #000000; text-align:center">'. $row1->lieudep .'</td>
<td style="border: 0px solid #000000; text-align:center">'. $row1->destination .'</td>
<td style="border: 0px solid #000000; text-align:center">'. $row1->heuredep .'</td>
<td style="border: 0px solid #000000; text-align:center">'. $row1->heureret .'</td>
<td style="border: 0px solid #000000; text-align:center">'. $time_h .'</td>
<td style="border: 0px solid #000000; text-align:center">'. $prime .'</td>
<td style="border: 0px solid #000000; text-align:center;"> '.$row1->matriculevoiture .' </td>
<td style="border: 0px solid #000000; text-align:center"></td>
<td style="border: 0px solid #000000; text-align:center"></td>
<td style="border: 0px solid #000000; text-align:center"></td>
<td style="border: 0px solid #000000; text-align:center"></td>
<td style="border: 0px solid #000000; text-align:center"></td>
</tr>
' ;
}
}
$tbl=$tbl.' </thead></table> ';
$pdf->writeHTML($tbl, true, false, false, false, '');
// WHAT SHALL I ADD HERE TO CALCULATE the TOTAL VALUE i.e SUM OF "$PRIME" ROWS?
// close and output PDF document
$date_auj=date('dmY',NOW());
$strr = "Rapport-".$date_auj.".pdf";
$pdf->Output($strr, 'I');
//ob_end_clean();
//$pdf->Output($strr, 'I');
//============================================================+
// END OF FILE
//============================================================+
?>
您可以在变量之前声明一个变量$prime
$grandPrime=0;
$prime=0;
foreach ($query->result() as $row){
在此处初始化它
$grandPrime+=$prime;
$tbl=$tbl. '<tr>
<td style="border: 0px solid #000000; text-align:center"></td>
<td style="border: 0px solid #000000; text-align:center">'. $row1->datedep .'</td>
并在循环结束后使用它。
感谢亲爱的会员们的宝贵帮助!事实上,缺少另一个总和变量。 我通过添加它解决了问题,如下所示:
$grandPrime=0; $prime=0;
foreach ($query->result() as $row)
{
//我的 IF 条件来计算素数等的值。
$grandPrime+=$prime;
$tbl=$tbl. '<tr>
我的表格内容..等。
</tr> ' ; }
$pdf->writeHTML($tbl, true, false, false, false, '');
然后我添加了一个 FOR 循环来显示 GRANDPRIME值,其中 $num_PRIME 只是素数行的数量
$num_prime = count($prime);
for($i = 0; $i < $num_prime; ++$i)
{ $pdf->SetFont('xzar', 'B', 11);
$pdf->Cell(277,5, " المبلغ الجملي $grandPrime ",1,0,'C');
}
这是我最终得到的正确结果:请点击链接查看图片
再次感谢您:)(你真的帮助了我!
行后
$prime=0;
添加另一个变量,将其命名为$sumPrimes
$sumPrimes =0;
在您分配$prime
时的最后其他之后:
else
if ( $time_h >=24 )
$prime = $montant2;
您可以像这样计算总和:
$sumPrimes += $prime;
在您之前和关闭表格之前:
$tbl=$tbl.' </thead></table> ';
您可以打印$sumPrimes.