Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,028

HOME > PHP > PHP Forum > ใช้ FPDF แล้วพอขึ้นหน้าใหม่หัวตารางไม่มาอ่ะค่ะ คือ ใช้ FPDF เพื่อแสดงข้อมูลจากฐานข้อมูล โดยแสดงเป็นตาราง



 

ใช้ FPDF แล้วพอขึ้นหน้าใหม่หัวตารางไม่มาอ่ะค่ะ คือ ใช้ FPDF เพื่อแสดงข้อมูลจากฐานข้อมูล โดยแสดงเป็นตาราง

 



Topic : 045367

Guest




คือ ใช้ FPDF เพื่อแสดงข้อมูลจากฐานข้อมูล โดยแสดงเป็นตาราง
แล้วพอขึ้นหน้าใหม่หัวตารางไม่มาอ่ะค่ะ

Code (PHP)
<?php
require("config/connect_db.inc.php");
require('fpdf.php');
 
//ทำการสืบทอดคลาส FPDF ให้เป็นคลาสใหม่
class PDF extends FPDF
{
	//Override คำสั่ง (เมธอด) Header
	function Header(){
 
		
		$this->SetFont('Arial','I',5); //ใช้ตัวอักษร Arial ตัวเอียง ขนาด 5
	
		$this->Text(5,5,'Created by  Sakamoto' ); 	//พิมพ์ตัวหนังสือตัวเอียงๆ ที่ตำแหน่งเยื้องขอบกระดาษซ้าย 5หน่วย ขอบกระดาษบน 5หน่วย
	
		$this->Ln(20);	//ปัดบรรทัด กำหนดความกว้างของบรรทัด 20หน่วย
	} 

	//Override คำสั่ง (เมธอด) Footer
	function Footer()	{ 
		//นับจากขอบกระดาษด้านล่างขึ้นมา 10 มม.
		$this->SetY( -10 ); 
		//กำหนดใช้ตัวอักษร Arial ตัวเอียง ขนาด 5
		$this->SetFont('Arial','I',5); 
		//พิมพ์วัน-เวลา ตรงมุมขวาล่าง
		$this->Cell(0,10,'Time '. date('d').'/'. date('m').'/'.(  date('Y')+543 ).' '. date('H:i:s') ,0,0,'L'); 
		$this->Cell(0,10, 'page '.$this->PageNo().' of  tp' ,0,0,'R');
	}
	//Load data
function LoadData($file)
{
	//Read file lines
	$lines=file($file);
	$data=array();
	foreach($lines as $line)
		$data[]=explode(';',chop($line));
	return $data;
}
//Simple table
function BasicTable($header,$data)
{
	//Header
	$w=array(10,30,25,20,30,30);
	//Header
	for($i=0;$i<count($header);$i++)
		$this->Cell($w[$i],7,$header[$i],1,0,'C');
	    $this->Ln();
	//Data
	$num=1; //ลำดับที่ 123 
	foreach ($data as $eachResult) 
	{
        //$this->Cell(20,6,$eachResult["id_std"],1);/*ดึงมาจากดาต้าเบส*/
	
		$this->Cell(10,6,$eachResult["id_std"],1,0,'C');
		$this->Cell(30,6,$eachResult["name_std"],1,0,'L');
		$this->Cell(25,6,$eachResult["lastname_std"],1,0,'C');
		$this->Cell(20,6,$eachResult["nickname_std"],1,0,'C');
		$this->Cell(30,6,$eachResult["school_std"],1,0,'C');
		$this->Cell(30,6,$eachResult["degree_std"]*5,1,0,'C');
		//$this->Cell(20,6,$eachResult["Budget"],1);
		$this->Ln();
		$num++; 
	   }
   }

} 

$pdf=new PDF();//เรียกใช้งาน เราจะเรียกใช้คลาสใหม่ของเราแทน

//Column titles
$header=array('ลำดับที่','ชื่อ','สกุล','ชื่อเล่น','โรงเรียน','ชั้น');

$strSQL = "SELECT * FROM tb_student";
$objQuery = mysql_query($strSQL);
$resultData = array();
for ($i=0;$i<mysql_num_rows($objQuery);$i++) {
	$result = mysql_fetch_array($objQuery);
	array_push($resultData,$result);
}
//*** Table 1 ***//
$pdf->SetMargins(10,2,10);//กำหนด Margin
$pdf->AddPage();//เพิ่มหน้า
$pdf->AliasNbPages( 'tp' );//แสดงเลขหน้า

//เพิ่ม font เข้ามาในเอกสาร
$pdf->AddFont('angsana','','angsa.php');
 $pdf->AddFont('angsana','B','angsab.php');

//กำหนดแบบอักษรรายการ
$pdf->SetFont('angsana','',14);
$pdf->Cell(0,6,'ตารางรายชื่อนักเรียน',0,1,'C');

$pdf->Ln(5);//ระหว่างบรรทัด
$pdf->BasicTable($header,$resultData);



$pdf->Output();
?>





Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-07-13 13:19:11 By : fon View : 9258 Reply : 4
 

 

No. 1



โพสกระทู้ ( 83 )
บทความ ( 0 )



สถานะออฟไลน์


ส่งเป็นแนวคิดให้นะค่ะ

1. ต้องดูก่อนว่าข้อมูลที่เป็นตารางของเรานั้น มีกี่แถว
2. ต้องดูว่า 1 หน้ารับข้อมูลได้กี่แถว
3. หน้าที่ 1 กับหน้าสุดท้ายแสดงข้อมูลเป็นจำนวนแถวได้เท่ากันมั้ย


ตัวอย่าง 1 เช่น มีข้อมูล 50 rows 1 หน้ารับข้อมูลได้ไม่เกิน 25 rows ฉะนั้นเราจึงแบ่งเป็น 2 หน้า
Code (PHP)
require formatPage.php; //include functionเข้ามา ซึ่งก็คือพวกที่คุณประกาศค่า function ต่าง ๆ ของหน้านี้นั่นแหละ

$strSQL = "SELECT * FROM tb_student"; 
$objQuery = mysql_query($strSQL);
$rows = mysql_num_rows($objQuery); // หาจำนวนแถวก่อน

if(rows>25){ // ถ้าแถวมากกว่า 25 แถวให้ทำการตัดข้อมูลของหน้าที่ 1 ก่อน
$pdf=new PDF();//สร้าง PDF หน้าแรก

//Column titles ใส่หัวตาราง
$header=array('ลำดับที่','ชื่อ','สกุล','ชื่อเล่น','โรงเรียน','ชั้น');
$pdf->SetMargins(10,2,10);//กำหนด Margin

$strSQL = "SELECT * FROM tb_student Limit 0,25"; 
$objQuery = mysql_query($strSQL);
$pdf->AddPage();//เพิ่มหน้า

$resultData = array();
for ($i=0;$i<mysql_num_rows($objQuery);$i++) {
	$result = mysql_fetch_array($objQuery);
	array_push($resultData,$result);
}
//*** Table 1 ***//
$pdf->AliasNbPages( 'tp' );//แสดงเลขหน้า

//เพิ่ม font เข้ามาในเอกสาร
$pdf->AddFont('angsana','','angsa.php');
 $pdf->AddFont('angsana','B','angsab.php');

//กำหนดแบบอักษรรายการ
$pdf->SetFont('angsana','',14);
$pdf->Cell(0,6,'ตารางรายชื่อนักเรียน',0,1,'C');

$pdf->Ln(5);//ระหว่างบรรทัด
$pdf->BasicTable($header,$resultData);

}else if(rows>25 && rows<=50){
   $strSQL1 = "SELECT * FROM tb_student Limit 25,50"; 
$objQuery1 = mysql_query($strSQL1);
$pdf->AddPage();//เพิ่มหน้า

$resultData1 = array();
for ($j=0;$i<mysql_num_rows($objQuery1);$i++) {
	$result = mysql_fetch_array($objQuery1);
	array_push($resultData1,$result1);
}
//*** Table 2 ***//
$pdf->AliasNbPages( 'tp' );//แสดงเลขหน้า

//เพิ่ม font เข้ามาในเอกสาร
$pdf->AddFont('angsana','','angsa.php');
 $pdf->AddFont('angsana','B','angsab.php');

//กำหนดแบบอักษรรายการ
$pdf->SetFont('angsana','',14);
$pdf->Cell(0,6,'ตารางรายชื่อนักเรียน',0,1,'C');

$pdf->Ln(5);//ระหว่างบรรทัด
$pdf->BasicTable($header,$resultData1);
}else if(rows>50 && rows<=75){
... ทำตาม Table2 จนจบข้อมูล
}

// แสดง output เมื่อลูปข้อมูลจบแล้ว
$pdf->Output();
?>



อันนี้ก็เป็นกรณีที่มีการแสดงแถวเท่ากันทุกหน้านะค่ะ ส่วนถ้าหน้าแรกกะหน้าสุดท้ายไม่เท่ากัน ก็ลองปรับ ๆ ดูแล้วกันค่ะ

โค้ดทั้งหมดยังไม่ได้ทำการรัน ฉะนั้น อาจจะผิดพลาดไปบ้าง รบกวนตรวจดูความถูกต้องอีกครั้งนะค่ะ






Date : 2010-07-15 11:31:28 By : s_ting
 


 

No. 2

Guest


ขอบคุณมากค่ะ
Date : 2010-07-15 17:19:26 By : fon
 

 

No. 3

Guest


ผมอยากได้แสดงแค่ 10 แถวครับ ถ้าเกิน 10 ก็ให้ขึ้นหน้าต่อไปครับทำงัยดี


Code (PHP)
<?  
//กำหนด Header ส่วนที่เกี่ยวข้อง  
include ('adodb/adodb.inc.php');  
define('FPDF_FONTPATH','fpdf/font/');  
require ('fpdf/jpdf.inc.php');

class PDF extends FPDF
{
function Header()
{
	//Logo
	
	//Arial bold 15



	$this->SetFont('angsana','B',15);
	//Move to the right
		$this->Ln(10);

	$this->Cell(80);
	//Title
	$this->Cell(30,10,'SERVICE ACKNOWLEDGEMENT REPORT (SAR)',0,0,'C');

	$this->Ln(15);

	$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("sarnewtest");
mysql_query("SET NAMES 'tis620' ");
$test=$_POST["MONTH"];
$test2=$_POST["YEAR"];
$strSQL = "select * from sar where MONTH='$test' AND YEAR='$test2'";
$objQuery = mysql_query($strSQL);
$resultData = array();
for ($i=0;$i<mysql_num_rows($objQuery);$i++) {
	$result = mysql_fetch_array($objQuery);
	array_push($resultData,$result);
}
$this->SetFont('angsana','',16);
$this->cell(0,7,'NAME:  '.$result["NAME"].'                              Signature : . . . . . . . . . . . . . . . . . . . . . .'.'                              MONTH:  '.$result["MONTH"].'  '.$result["YEAR"],1,0,'L');
$this->SetFont('angsana','',10);
$this->Ln(10);
$this->cell(15,7,'Date',1,0,'L');
$this->cell(15,7,'Time in',1,0,'L');
$this->cell(15,7,'Time out',1,0,'L');
$this->cell(15,7,'Equivalent',1,0,'L');
$this->cell(25,7,'Site-name Project',1,0,'L');
$this->cell(70,7,'TASK',1,0,'C');
$this->cell(0,7,'REMARKS',1,0,'L');

	//Line break
	$this->Ln();

}
function Footer()
{
$this->SetY(-90);
$this->Ln(15);
$this->SetFont('angsana','',16);
$this->cell(0,7,'______________________',0,0,'R');
$this->Ln(7);
$this->cell(0,7,'Initail by             ',0,0,'R');
$this->Ln(10);
$this->cell(0,7,'______________________',0,0,'R');
$this->Ln(7);
$this->cell(0,7,'Approved by          ',0,0,'R');

	//Position at 1.5 cm from bottom
	$this->SetY(-15);
	//Arial italic 8
	$this->SetFont('Arial','I',8);
	//Page number
	$this->Cell(0,10,'Page '.$this->PageNo().'',0,0,'C');
}
	function conv($string) {
return iconv('UTF-8', 'TIS-620', $string);
}
//Load data
function LoadData($file)
{
	//Read file lines
	$lines=file($file);
	$data=array();
	foreach($lines as $line)
		$data[]=explode(';',chop($line));
	return $data;
}

//Simple table
function BasicTable($header,$data)
{
	//Header
	

	$w=array(15,15,15,15,25,70,35);
	//Header
	
	for($i=0;$i<count($header);$i++)
		$this->Cell($w[$i],7,$header[$i],1,0,'C');
	
	//Data
	
	foreach ($data as $eachResult) 
	{
		$this->Cell(15,6,$eachResult["DATE"],1,0,'C');
		$this->Cell(15,6,$eachResult["TIMEIN"],1,0,'C');
		$this->Cell(15,6,$eachResult["TIMEOUT"],1,0,'C');
		$this->Cell(15,6,$eachResult["Equivalent"],1,0,'C');
		$this->Cell(25,6,$eachResult["Project"],1);
		$this->Cell(70,6,$eachResult["TASK"],1);
		$this->Cell(35,6,$eachResult["REMARKS"],1);
		$this->Ln();
	}
}

//Better table
function ImprovedTable($header,$data)
{
	//Column widths
	$w=array(10,20,20,30,70,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 $eachResult) 
	{
		$this->Cell(10,6,$eachResult["id"],1);
		$this->Cell(20,6,$eachResult["TIMEIN"],1);
		$this->Cell(20,6,$eachResult["TIMEOUT"],1);
		$this->Cell(30,6,$eachResult["CUSTOMERS"],1);
		$this->Cell(70,6,$eachResult["TASK"],1);
		$this->Cell(20,6,$eachResult["REMARKS"],1);
		$this->Ln();
	}

	//Closure line
	$this->Cell(array_sum($w),0,'','T');
}

//Colored table
function FancyTable($header,$data)
{
	//Colors, line width and bold font
	$this->SetFillColor(255,0,0);
	$this->SetTextColor(255);
	$this->SetDrawColor(128,0,0);
	$this->SetLineWidth(.3);
	$this->SetFont('','B');
	//Header
	$w=array(10,20,20,30,70,20);
	for($i=0;$i<count($header);$i++)
		$this->Cell($w[$i],7,$header[$i],1,0,'C',true);
	$this->Ln();
	//Color and font restoration
	$this->SetFillColor(224,235,255);
	$this->SetTextColor(0);
	$this->SetFont('');
	//Data
	$fill=false;
	foreach($data as $row)
	{
		$this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
		$this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
		$this->Cell($w[2],6,$row[2],'LR',0,'L',$fill);
		$this->Cell($w[3],6,$row[3],'LR',0,'C',$fill);
		$this->Cell($w[4],6,number_format($row[4]),'LR',0,'R',$fill);
		$this->Cell($w[5],6,number_format($row[5]),'LR',0,'R',$fill);
		$this->Cell($w[5],6,number_format($row[5]),'LR',0,'R',$fill);
		$this->Ln();
		$fill=!$fill;
	}
	$this->Cell(array_sum($w),0,'','T');
}
}

$pdf=new PDF();

//Column titles

//Data loading

//*** Load MySQL Data ***//
$objConnect = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("sarnewtest");
mysql_query("SET NAMES 'tis620' ");


$test=$_POST["MONTH"];
$test2=$_POST["YEAR"];
$strSQL = "select * from sar where MONTH='$test' AND YEAR='$test2'";
$objQuery = mysql_query($strSQL);
$resultData = array();
for ($i=0;$i<mysql_num_rows($objQuery);$i++) {
	$result = mysql_fetch_array($objQuery);
	array_push($resultData,$result);
}
//************************//
$pdf->AddFont('angsana','B','angsanab.php');  
$pdf->AddFont('angsana','','angsana.php');  


//*** Table 1 ***//
$pdf->AddPage();

$pdf->SetFont('angsana','',10);

$pdf->BasicTable($header,$resultData);

//สิ้นสุดการประมวลผลและส่งออกไฟล์เป็น PDF ไฟล์  
$pdf->Output();  
?> 


Date : 2011-02-23 15:16:18 By : toon
 


 

No. 4

Guest


ผมอยากแสดงเป็นรูปภาพที่ใช้คำสั่ง Image นะครับแต่ว่ามันทำไม่ได้ไม่ทราบมีวิธีบ้างไหมครับ อีกอย่างรูปภาพที่แสดงแต่ละรูปขนาดจะไม่เท่ากัน ใครทราบช่วยแนะนำหน่อยนะครับ
Date : 2011-03-02 08:34:39 By : payak
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ใช้ FPDF แล้วพอขึ้นหน้าใหม่หัวตารางไม่มาอ่ะค่ะ คือ ใช้ FPDF เพื่อแสดงข้อมูลจากฐานข้อมูล โดยแสดงเป็นตาราง
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่