2012-02-12 3 views
1

Мне нужно создать pdf-документ, который выводит все строки из таблицы mysql, но в приведенном ниже коде он выводит только одну последнюю строку из этой таблицы. У кого-то есть время, чтобы проверить мой код и предложить мне коррекцию, или у кого-то есть лучший код для такого отчета?Как вывести содержимое таблицы mysql в pdf с помощью tcpdf?

+0

Ответ на мой вопрос правильно ответил на вопрос answerd по следующей ссылке: http://stackoverflow.com/questions/9716803/tcpdf-printing-table-from-mysql-showing-repeated-first -row – mdakic

ответ

0

Один из способов сделать это:

the while loop 
(
    if($number_of_rows > 0) { 

    while($row = mysql_fetch_assoc($result)) 
    { 
     $RN = $row['rnBr']; 
     $Tvrtka = $row['formTvrtka']; 
     $Poslovnica = $row['formPoslovnica']; 
     $Datum = $row['formDatum']; 
     $Izvrsio = $row['formIzvrsio']; 
     $Kontakt = $row['formKontakt']; 
     $Napomene = $row['formNapomene']; 
     $Izdavatelj = $row['formIzdavatelj']; 
    } 
    } 
) 

должно быть там, где это:

<tr> 
    <td>$RN</td> 
    <td>$Datum</td> 
    <td>$Izvrsio</td> 
    <td>$Tvrtka</td> 
    <td>$Poslovnica</td> 
    <td>$Napomene</td> 
    <td>$Izdavatelj</td> 
</tr> 

Таким образом, вы получите что-то вроде

if($number_of_rows > 0) { 

    while($row = mysql_fetch_assoc($result)) 
    { 
     echo '<tr>'; 
     echo '<td>'. $row['rnBr'].'</td>'; 
     echo '<td>'. $row['formTvrtka'].'</td>'; 
     echo '<td>'. $row['formPoslovnica'].'</td>'; 
     echo '<td>'. $row['formDatum'].'</td>'; 
     echo '<td>'. $row['formIzvrsio'].'</td>'; 
     echo '<td>'. $row['formKontakt'].'</td>'; 
     echo '<td>'. $row['formNapomene'].'</td>'; 
     echo '<td>'. $row['formIzdavatelj'].'</td>'; 
    } 
} 

иначе да , вы выводите только последнюю строку, найденную в запросе.

Альтернативно изменить каждую строку:

$RN = $row['rnBr']; to $RN[$n] = $row['rnBr']; (with $n++ at the end of your loop and $n=0; before the loop 

Затем в нижней части при выводе вы можете сделать:

for($u=0;$u<count($rn);$u++){ 
    <tr> 
     <td>$RN[$u]</td> 
     <td>$Datum[$u]</td> 
     <td>$Izvrsio[$u]</td> 
     <td>$Tvrtka[$u]</td> 
     <td>$Poslovnica[$u]</td> 
     <td>$Napomene[$u]</td> 
     <td>$Izdavatelj[$u]</td> 
    </tr> 
} 
+0

Я использовал как первое, так и второе решение и всегда давал мне то же самое последнее сырье из таблицы – mdakic

0
$db = mysql_connect($hostname, $db_user, $db_password); 
mysql_select_db($database,$db); 
$rnBr = mysql_real_escape_string(trim($_POST['rnBr'])); 
$zahtjev = $_GET['rnBr']; 
$upit = "SELECT * FROM radni where formDatum >= CURDATE() and formDatum < (CURDATE()+ interval 7 day) order by formDatum asc"; 
$result = mysql_query($upit); 

require_once('../config/lang/hrv.php'); 
require_once('../tcpdf.php'); 
// create new PDF document 
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 
// set document information 
$pdf->SetCreator(PDF_CREATOR); 
$pdf->SetAuthor('XXXXX'); 
$pdf->SetTitle('TCPDF Radni nalog'); 
$pdf->SetSubject('TCPDF Radni nalog'); 
$pdf->SetKeywords('TCPDF, PDF, radni, nalog, ispis'); 

//set some language-dependent strings 
$pdf->setLanguageArray($l); 
// --------------------------------------------------------- 
// set font 
$pdf->SetFont('dejavusans', '', 14, '', true); 
// add a page 
$pdf->AddPage(); 

$tbl = <<<EOD 
<table border="" cellpadding="0" cellspacing="7" align="center" fontsize="14"> 
<tr> 
<td></td><td><br /><br /><br /><br /></td> 
</tr> 
<tr> 
<th colspan="2"><h1>Tjedni raspored djelatnika</h1></th> 
</tr> 
</table> 
EOD; 
$pdf->writeHTML($tbl, true, false, false, false, ''); 
$pdf->Ln(); 
$pdf->SetLineStyle(array('width' => 0.0, 'cap' => 'butt', 'join' => 'miter', 'dash' => 4, 'color' => array(255, 0, 0))); 
$pdf->SetFillColor(255,255,128); 
$pdf->SetTextColor(0,0,128); 

$pdf->Ln(); 

$tbl = <<<EOD 
<table border="1" cellpadding="0" cellspacing="3" align="center" fontsize="12"> 
<tr> 
<th colspan="1">Radni nalog:</th> 
<th colspan="1">Datum:</th> 
<th colspan="1">Izvršitelj:</th> 
<th colspan="1">Tvrtka:</th> 
<th colspan="1">Poslovnica:</th> 
<th colspan="1">Napomena:</th> 
<th colspan="1">RN izdao:</th> 
</tr> 
</table> 
EOD; 

$pdf->writeHTML($tbl, true, false, false, false, ''); 

$pdf->Ln(); 

$tbl = '<table border="1" cellpadding="0" cellspacing="3" align="center" fontsize="10">'; 
while($row = mysql_fetch_assoc($result)) { 

    $tbl .="<tr> 
<td>{$row['rnBr']}</td> 
<td>{$row['formDatum']}</td> 
<td>{$row['formIzvrsio']}</td> 
<td>{$row['formTvrtka']}</td> 
<td>{$row['formPoslovnica']}</td> 
<td>{$row['formNapomene']}</td> 
<td>{$row['formIzdavatelj']}</td> 
</tr>"; 
} 

$tbl = '</table>'; 

$pdf->writeHTML($tbl, true, false, false, false, ''); 

// Set some content to print 
$html = <<<EOD 
<i>Ovaj popis generiran je računalnim programom!</i> 
EOD; 
$pdf->writeHTMLCell($w='', $h='', $x='', $y='', $html, $border=1, $ln=1, $fill=1, $reseth=true, $align='center', $autopadding=true); 

// --------------------------------------------------------- 
//Close and output PDF document 
$pdf->Output('raspored_djelatnika.pdf', 'I');