2016-01-09 3 views
1
<?php 
    require_once("connection.php"); 
    $result = mysql_query("SELECT * FROM personal_details"); 
    $header = mysql_query("SELECT `COLUMN_NAME` 
    FROM `INFORMATION_SCHEMA`.`COLUMNS` 
    WHERE `TABLE_SCHEMA`='unania' 
    AND `TABLE_NAME`='personal_details'"); 

    require('fpdf.php'); 
    $pdf = new FPDF(); 
    $pdf->AddPage(); 
    $pdf->SetFont('Arial','B',12);  
    foreach($header as $heading) { 
    foreach($heading as $column_heading) 
     $pdf->Cell(90,12,$column_heading,1); 
    } 
    foreach($result as $row) { 
    $pdf->SetFont('Arial','',12); 
    $pdf->Ln(); 
    foreach($row as $column) 
     $pdf->Cell(90,12,$column,1); 
    } 
    $pdf->Output(); 
    ?> 

Приведенный выше код при запуске выводит пустой документ PDF, что не так, я использую процедурный mysql вместо OOP. Однако мне нужно как можно быстрее.MYSQL в PDF пусто

+0

Вы пробовали поместить простую текстовую строку в свой PDF-файл? Что происходит тогда? Возможно, ваши петли foreach не введены. – etalon11

+0

Пробовал то, что вы только что сказали, и все еще пусто. Это то, что я изменил; $ result = "Игра на"; $ header = "Charlie"; – optimalresource

+0

Хорошо. Тогда это не проблема с mysql. Оставьте тестовую строку в своем коде обновить браузер с помощью Shift + F5. Иногда старая страница кэшируется. – etalon11

ответ

0

Я потратил время, чтобы сделать вам небольшой образец с pdo. Как-то ваши ошибки не отображаются в вашей локальной хост-системе. Вы должны проанализировать это. Вот пример, который работает для меня:

<?php 
require('fpdf.php'); 

$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', ''); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$colNames = array(); 

foreach($db->query("SELECT * FROM mytest") as $row2) { 
    echo $row2['id'].' '.$row2['name']; 
} 

$result = $db->query("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='test' AND TABLE_NAME='mytest'"); 

foreach($result as $row) { 
    $colNames[] = $row["COLUMN_NAME"]; 
} 

$pdf = new FPDF(); 
$pdf->AddPage(); 
$pdf->SetDisplayMode(real,'default'); 

$pdf->SetFont('Arial','B',12);  
$pdf->SetTextColor(50,60,100); 

$pdf->SetXY(50,20); 
$pdf->SetDrawColor(50,60,100); 
$pdf->Cell(100,10,'Tabledata MyTest',1,0,'C',0); 

$pdf->Ln(); 
$pdf->Ln(); 

foreach($colNames as $colName) { 
    $pdf->Cell(90,12,$colName,1); 
} 

$pdf->Ln(); 

foreach($db->query("SELECT * FROM mytest") as $row) { 
    $pdf->Ln(); 
    foreach($colNames as $colName) { 
     $pdf->Cell(90,12,$row[$colName],1); 
    } 
} 

ob_end_clean(); 
$pdf->Output(); 

?> 
+0

Спасибо за ваш ответ, я попробую реализовать его сразу – optimalresource

+0

Успешно ли вы? – etalon11

+0

Да, у меня есть, используя PDO, он отлично работал, заполняя массивы, как ожидалось, и pdf-файл был создан хорошо, я применил только подключение базы данных PDO к своему сценарию. Но есть еще одна проблема, с которой я сражаюсь в данный момент: заголовок и результат были напечатаны в дублированной форме. Я разрешил дублирование заголовка из кода, но результат дублируется в столбцах заголовка, например, дважды печатается дважды, и так далее. Я вставлю новый код ниже. – optimalresource

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