2013-11-18 2 views
0

Привет друзья ниже - это мой php-код, который генерирует PDF из таблицы MYSQL (для всех строк) и работает как угодно, мне нужно, чтобы генерировать отчет для выбранных строк, только для пример строки 1 и строки 3, которая хранится в массиве ($ sel), я не знаю, как это достичь, используя foreach, foreach и while loop ... любая помощь будет высоко оценена.FPDF, генерирующий pdf из таблицы mysql для выбранного значения

Вот моя таблица базы данных

---------------------------------- 
| id | company   | total | 
---------------------------------- 
| 1 | ABC    | 1000 | 
| 2 | XYZ    | 500 | 
| 3 | PZX    | 100 | 
---------------------------------- 

это моя страница PHP, который генерирует PDF во время загрузки и предоставить ссылку для загрузки этого файла

<?php 

require('u/fpdf.php');//fpdf path 
include_once('db_connect.php');// my db connection 

$sel = array (1,3); 

$result=mysql_query("select * from `receipt` "); 

//Initialize the 3 columns and the total 
$c_code = ""; 
$c_name = ""; 
$c_price = ""; 
$total = 0; 

//For each row, add the field to the corresponding column 
while($row = mysql_fetch_array($result)) 
{ 
    $code =$row['id']; 
    $name = substr($row['company'],0,20); 
    $real_price = $row['total']; 
    $show =$row['total']; 

$c_code = $c_code.$code."\n"; 
$c_name = $c_name.$name."\n"; 
$c_price = $c_price.$show."\n"; 

//Sum all the Prices (TOTAL) 
    $total = $total+$real_price; 
} 
mysql_close(); 

$total = $total; 

//Create a new PDF file 
$pdf=new FPDF(); 
$pdf->AddPage(); 

//Now show the 3 columns 
$pdf->SetFont('Arial','',12); 
$pdf->SetY(26); 
$pdf->SetX(45); 
$pdf->MultiCell(20,6,$c_code,1); 
$pdf->SetY(26); 
$pdf->SetX(65); 
$pdf->MultiCell(100,6,$c_name,1); 
$pdf->SetY(26); 
$pdf->SetX(135); 
$pdf->MultiCell(30,6,$c_price,1,'R'); 
$pdf->SetX(135); 
$pdf->MultiCell(30,6,'$ '.$total,1,'R'); 

$filename="invoice.pdf"; 
$pdf->Output($filename,'F'); 

echo'<a href="invoice.pdf">Download your Invoice</a>'; 

?> 

приведенный выше код дает мне результат, как this-

---------------------------------- 
| 1 | ABC    | 1000 | 
| 2 | XYZ    | 500 | 
| 3 | PZX    | 100 | 
---------------------------------- 
          | 1600 | 
          -------- 

Я хочу, чтобы мой результат отображался следующим образом:

---------------------------------- 
| 1 | ABC    | 1000 | 
| 3 | PZX    | 100 | 
---------------------------------- 
          | 1100 | 
          -------- 

еще раз спасибо заранее ..

ответ

0
$result=mysql_query("select * from `receipt` where id IN(1,3) "); 
+0

спасибо за поддержку ур, но порядок используется для упорядочивания данных из (mysql, если я прав), ваш запрос только упорядочил мои данные в алфавитном порядке, я хочу сократить данные, где table.id должно быть 1 и 3, чтобы я мог получить только 2 результата один для строки 1 и другой для строки 3. – Praveen

+0

спасибо за предложение ur, i hv загрузил полностью функциональный код ниже. – Praveen

1

следующий код работает хорошо после небольшой модификации в Бове коде (используя, где положение)

$result=mysql_query("select * from `receipt` where id IN(1,3) "); 

можно использовать столько, сколько переменной путем разделения его с помощью implode, например, выбранного значения ячейки checkbox с предыдущей страницы

<?php 

require('u/fpdf.php');//fpdf path 
include_once('db_connect.php');// my db connection 

$sel =array (1,3);// can use $sel =$_GET['sel']; where $_GET['sel'], sel is a checkbox array value received from prev page.. 

$id=implode(",",$sel);//seperating ',' from array 

$result=mysql_query("select * from `receipt` where id IN($id) "); 
//Initialize the 3 columns and the total 
$c_code = ""; 
$c_name = ""; 
$c_price = ""; 
$total = 0; 

//For each row, add the field to the corresponding column 
while($row = mysql_fetch_array($result)) 
{ 
    $code =$row['id']; 
    $name = substr($row['company'],0,20); 
    $real_price = $row['total']; 
    $show =$row['total']; 

$c_code = $c_code.$code."\n"; 
$c_name = $c_name.$name."\n"; 
$c_price = $c_price.$show."\n"; 

//Sum all the Prices (TOTAL) 
    $total = $total+$real_price; 
} 
mysql_close(); 

$total = $total; 

//Create a new PDF file 
$pdf=new FPDF(); 
$pdf->AddPage(); 

//Now show the 3 columns 
$pdf->SetFont('Arial','',12); 
$pdf->SetY(26); 
$pdf->SetX(45); 
$pdf->MultiCell(20,6,$c_code,1); 
$pdf->SetY(26); 
$pdf->SetX(65); 
$pdf->MultiCell(100,6,$c_name,1); 
$pdf->SetY(26); 
$pdf->SetX(135); 
$pdf->MultiCell(30,6,$c_price,1,'R'); 
$pdf->SetX(135); 
$pdf->MultiCell(30,6,'$ '.$total,1,'R'); 

$filename="invoice.pdf"; 
$pdf->Output($filename,'F'); 

echo'<a href="invoice.pdf">Download your Invoice</a>'; 

?> 
Смежные вопросы