首先,我真的很抱歉我的英语。我试着解释我的想法。我使用fpdf以pdf格式制作动态发票。我有多个产品可以添加一张发票,我必须将它们列在底部。但产品在所有发票中都会发生变化。一些发票有5个产品,但有些发票有2个产品。我的问题是我使用下面的代码,但所有行都被覆盖。
$invoices_query = mysql_query("SELECT * FROM invoice_bookings WHERE invoice_code = '$invoice_code'");
while ($invoices = mysql_fetch_array($invoices_query)) {
$customers_name = $invoices['customer_name'];
$pdf->Ln(0);
$pdf->Cell(21,123,$invoice_number,0,0,'L',0); // empty cell with left,top, and right borders
$pdf->Cell(30,123,$customers_name,0,0,'L',0);
$pdf->Cell(20,123,$date,0,0,'L',0);
$pdf->Cell(20,123,$time,0,0,'L',0);
$pdf->Cell(30,123,$suburb_from,0,0,'L',0);
$pdf->Cell(34,123,$suburb_to,0,0,'L',0);
$pdf->Cell(10,123,'% ' . $tax_percent,0,0,'L',0);
$pdf->Cell(25,123,'$ ' . $invoice_price,0,0,'R',0);
}
您可以看到保证金的价值。你可以看到它是123。例如,我必须将此值增加到132。而对于其他产品142我必须做。例如,此发票中有5个产品,我必须这样做;
首先123 第二次133 第三个143 第四次153 第五次163
但我真的不知道我该怎么做。
答案 0 :(得分:0)
就这样。添加一个计数器,对其进行初始化,并始终使用10。
$cnt = 123; //Init the counter
while ($invoices = mysql_fetch_array($invoices_query)) {
$customers_name = $invoices['customer_name'];
$pdf->Ln(0);
$pdf->Cell(21, $cnt, $invoice_number, 0, 0, 'L', 0); // empty cell with left,top, and right borders
$pdf->Cell(30, $cnt, $customers_name, 0, 0, 'L', 0);
$pdf->Cell(20, $cnt, $date, 0, 0, 'L', 0);
$pdf->Cell(20, $cnt, $time, 0, 0, 'L', 0);
$pdf->Cell(30, $cnt, $suburb_from, 0, 0, 'L', 0);
$pdf->Cell(34, $cnt, $suburb_to, 0, 0, 'L', 0);
$pdf->Cell(10, $cnt, '% ' . $tax_percent, 0, 0, 'L', 0);
$pdf->Cell(25, $cnt, '$ ' . $invoice_price, 0, 0, 'R', 0);
$cnt = $cnt + 10; //Incrase it in the loop.
}
注意强>
不要使用mysql
函数,不推荐使用它们。请改用mysqli
或PDO
。
通过从外部转义变量来避免sql注入,或者使用准备好的语句。