ดึงข้อมูลจากฐานข้อมูล ลงใน PDF แล้วไม่แสดงข้อมูล ?! รบกวนผู้รู้แนะนำด้วยค่ะ >/\<
พอดีเพิ่งหัดเขียน PHP ซึ่งต้องการจะทำรายการยืมครุภัณฑ์ภายในองค์กร โดยที่ User กดคลิกทำรายการ
ซึ่งข้อมูลที่ User ทำรายการอยูในฐานข้อมูลแล้ว แต่ขั้นตอนต่อไปคือ ต้องการให้ข้อมูลจากฐานข้อมูลมาแสดงในรูปแบบ PDF
ซึ่งศึกษาจากโค้ดของ thaicreate แล้วก็ยังทำไม่ได้ มีติด error ที่การเรียกใช้ฐานข้อมูล ไม่ทราบว่าเป็นเพราะอะไร
รบกวนผู้รู้เกี่ยวกับการใช้ PDF แนะนำด้วยค่ะ T^T
Code
<?php
ob_start();
?>
<?php require_once('Connections/durable_connect.php'); ?>
<?php
date_default_timezone_set('UTC');
define('FPDF_FONTPATH','fpdf/font/');
require('fpdf/fpdf.php');
class PDF extends FPDF
{
// Load data
function LoadData($file)
{
// Read file lines
$lines = file($file);
$data = array();
foreach($lines as $line)
$data[] = explode(';',trim($line));
return $data;
}
//Simple table
function BasicTable($header,$data)
{
//Header
$w = array(30, 25, 55, 20, 20);
//Header
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],7,$header[$i],1,0,'C');
$this->Ln();
//Data
foreach ($data as $row)
{
$this->Cell(30,6,$row["drb_cg_name"],1);
$this->Cell(25,6,$row["drb_cg_idshow"],1);
$this->Cell(55,6,$row["drb_pd_name"],1);
$this->Cell(20,6,$row["drb_ord_Qty"],1,0,'C');
$this->Cell(20,6,$row["drb_pd_price"],1,0,'C');
$this->Ln();
}
}
function ImprovedTable($header,$data)
{
//Column widths
$w = array(30, 25, 55, 20, 20);
//Header
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],7,$header[$i],1,0,'C');
$this->Ln();
//Data
if(is_array($variable))
{
foreach ($data as $row)
{
$this->Cell(30,6,$row["drb_cg_name"],1);
$this->Cell(25,6,$row["drb_cg_idshow"]&&$row["drb_pd_code"],1);
$this->Cell(55,6,$row["drb_pd_name"],1);
$this->Cell(20,6,$row["drb_ord_Qty"],1,0,'C');
$this->Cell(20,6,$row["drb_pd_price"],1,0,'C');
$this->Ln();
}
}
//Closure line
$this->Cell(array_sum($w),0,'','T');
}
}
$pdf = new PDF();
// Column headings
$header = array('drb_cg_name','drb_cg_idshow','drb_pd_code','drb_pd_name','drb_ord_Qty','drb_pd_price');
// Data loading
////////////////////////////
//*** Load MySQL Data ***//
$objDB = mysql_select_db($database_durable_connect,$durable_connect);
$strSQL = " SELECT * FROM drb_product ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$resultData = array();
for ($i=0;$i<mysql_num_rows($objQuery);$i++)
{
$result = mysql_fetch_array($objQuery);
array_push($resultData,$result);
}
//********************************************//
$pdf->SetFont('Arial','',14);
$pdf->AddPage();
$pdf->BasicTable($header,$data);
////////////////////////////////////
$pdf->AddPage();
$pdf->ImprovedTable($header,$data);
$pdf->Output();
//////////////////////////////////////////
mysql_close($durable_connect);
ob_end_flush();
?>
##จากโค้ดจะติด error ว่า " Warning: Invalid argument supplied for foreach() in C:\AppServ\www\galacyMain\gsf_pdf.php on line 38
FPDF error: Some data has already been output, can't send PDF file " เป็นเพราะอะไรค่ะ ?Tag : PHP, MySQL
Date :
2015-09-28 16:05:27
By :
hiyingzha
View :
1156
Reply :
3
แบบนี้ดูง่ายกว่าน่ะ
Code (PHP)
<?php
ob_start();
?>
<?php require_once('Connections/durable_connect.php'); ?>
<?php
date_default_timezone_set('UTC');
define('FPDF_FONTPATH','fpdf/font/');
require('fpdf/fpdf.php');
class PDF extends FPDF
{
// Load data
function LoadData($file)
{
// Read file lines
$lines = file($file);
$data = array();
foreach($lines as $line)
$data[] = explode(';',trim($line));
return $data;
}
//Simple table
function BasicTable($header,$data)
{
//Header
$w = array(30, 25, 55, 20, 20);
//Header
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],7,$header[$i],1,0,'C');
$this->Ln();
//Data
foreach ($data as $row)
{
$this->Cell(30,6,$row["drb_cg_name"],1);
$this->Cell(25,6,$row["drb_cg_idshow"],1);
$this->Cell(55,6,$row["drb_pd_name"],1);
$this->Cell(20,6,$row["drb_ord_Qty"],1,0,'C');
$this->Cell(20,6,$row["drb_pd_price"],1,0,'C');
$this->Ln();
}
}
function ImprovedTable($header,$data)
{
//Column widths
$w = array(30, 25, 55, 20, 20);
//Header
for($i=0;$i<count($header);$i++)
$this->Cell($w[$i],7,$header[$i],1,0,'C');
$this->Ln();
//Data
if(is_array($variable))
{
foreach ($data as $row)
{
$this->Cell(30,6,$row["drb_cg_name"],1);
$this->Cell(25,6,$row["drb_cg_idshow"]&&$row["drb_pd_code"],1);
$this->Cell(55,6,$row["drb_pd_name"],1);
$this->Cell(20,6,$row["drb_ord_Qty"],1,0,'C');
$this->Cell(20,6,$row["drb_pd_price"],1,0,'C');
$this->Ln();
}
}
//Closure line
$this->Cell(array_sum($w),0,'','T');
}
}
$pdf = new PDF();
// Column headings
$header = array('drb_cg_name','drb_cg_idshow','drb_pd_code','drb_pd_name','drb_ord_Qty','drb_pd_price');
// Data loading
////////////////////////////
//*** Load MySQL Data ***//
$objDB = mysql_select_db($database_durable_connect,$durable_connect);
$strSQL = " SELECT * FROM drb_product ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$resultData = array();
for ($i=0;$i<mysql_num_rows($objQuery);$i++)
{
$result = mysql_fetch_array($objQuery);
array_push($resultData,$result);
}
//********************************************//
$pdf->SetFont('Arial','',14);
$pdf->AddPage();
$pdf->BasicTable($header,$data);
////////////////////////////////////
$pdf->AddPage();
$pdf->ImprovedTable($header,$data);
$pdf->Output();
//////////////////////////////////////////
mysql_close($durable_connect);
ob_end_flush();
?>
Date :
2015-09-28 16:43:11
By :
mangkunzo
ลองดู $data ใน บรรทัดที่ 38 ก่อนน่ะครับ ว่าได้ค่าอะไรออกมาหรือเปล่า
Date :
2015-09-28 16:44:06
By :
mangkunzo
Load balance : Server 02