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,037

HOME > PHP > PHP Forum > ปัญหาเกี่ยวกับการออกรายงานเป็น PDF Output ออกมาไม่ได้ เปลี่ยนไปใช้ทั้ง TCPDF ก็แล้วทั้ง MPDF ก็แล้ว



 

ปัญหาเกี่ยวกับการออกรายงานเป็น PDF Output ออกมาไม่ได้ เปลี่ยนไปใช้ทั้ง TCPDF ก็แล้วทั้ง MPDF ก็แล้ว

 



Topic : 127225



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



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




พอดีทำรายงาน PDF โดยใช้ TCPDF ครับ แล้วทีนี้มีปัญหาที่มันโหลดช้ามากจน output ออกมาไม่ได้ครับ ตรวจสอบเป็นที่ code query ตัวนี้ครับ ลองเปลี่ยนไป mpdf ก็เป็นเช่นเดียวกันครับจะต้องแก้ปัญหายังไง ช่วยดูให้หน่อยนะครับ ขอบคุณมากครับ
Code (PHP)
$sql_val = "SELECT * from student_inclass_main inner join student_subject on (student_inclass_main.class_now = student_subject.std_class and student_inclass_main.room_now = student_subject.room) where class_now=$_GET[class] and room=$room_s and student_id=$stu_s and month(check_date)=$_GET[month] and (student_inclass_main.check_val like '%v%' or student_inclass_main.check_val like '%w%' or student_inclass_main.check_val like '%s%' or student_inclass_main.check_val like '%l%') and sub_code='$m'";
	$r_val=$db->prepare($sql_val);
	$r_val->execute();
	$rrr = $r_val->fetch();
	$Lnums = 0;
	while($row4 = $rrr){
		$day=date("l",strtotime($row4['check_date']));
		$sql_ref = 'select * from student_ref where ref_id=? and ed_day=?';
				//echo $sql_ref ;	
				$dbquery_ref = $db->prepare($sql_ref);
				$dbquery_ref->bindParam(1,$row4['ref_id']);
				$dbquery_ref->bindParam(2,$day);
				$dbquery_ref->execute();
				$d_num=$dbquery_ref->rowCount();
	}


Code เต็มครับ
Code (PHP)
<?php
ob_start();
ini_set('max_execution_time', 300);
include("tcpdf/tcpdf.php");
include("include/connect.php");
include("include/inc.php");
$sql_y="select * from stu_addYear where year_status=1";
$ry=$db->prepare($sql_y);
$ry->execute();
$yactive=$ry->fetch(PDO::FETCH_ASSOC);
$year_active=$yactive['year'];
$num_period=$yactive['num_period'];
if(!(isset($_POST['class_now']))){
$_POST['class_now']="";
}
if(!(isset($_POST['part']))){
$_POST['part']="";
}
if(isset($_GET['index'])){
	$index = $_GET['index'];
}else {
	$index = "";
}
$month_data=array(
	"",
	"มกราคม",
	"กุมภาพันธ์",
	"มีนาคม",
	"เมษายน",
	"พฤษภาคม",
	"มิถุนายน",	
	"กรกฎาคม",
	"สิงหาคม",
	"กันยายน",
	"ตุลาคม",
	"พฤศจิกายน",
	"ธันวาคม"					
);
$sql = "SELECT *,student_main.id from student_main inner join student_subject on (student_main.class_now=student_subject.std_class and student_main.room = student_subject.room) inner join student_inclass_main on (student_main.student_id = student_inclass_main.student_id and student_main.class_now = student_inclass_main.class_now and student_main.room = student_inclass_main.room_now) where status=0 and student_main.class_now=$_GET[class] and (student_inclass_main.check_val like '%v%' or student_inclass_main.check_val like '%w%' or student_inclass_main.check_val like '%s%' or student_inclass_main.check_val like '%l%') and month(student_inclass_main.check_date) = $_GET[month] and student_subject.part=$_GET[part] group by student_main.id ORDER BY student_main.room,student_main.student_number,student_main.student_id";
$r=$db->prepare($sql);
$r->execute();
$count_sub = $r->rowCount();
if($_GET['class'] == 11){
	$class = 2;
}else if ($_GET['class'] = 10){
	$class = 1;
}else if ($_GET['class'] = 12){
	$class = 3;
}else if ($_GET['class'] = 13){
	$class = 4;
}else if ($_GET['class'] = 14){
	$class = 5;
}else if ($_GET['class'] = 15){
	$class = 6;
}
$month = $_GET['month'];


$month_data=array(
	'',
	'มกราคม',
	'กุมภาพันธ์',
	'มีนาคม',
	'เมษายน',
	'พฤษภาคม',
	'มิถุนายน',	
	'กรกฎาคม',
	'สิงหาคม',
	'กันยายน',
	'ตุลาคม',
	'พฤศจิกายน',
	'ธันวาคม'					
);
$month_txt = $month_data[$month];
// เริ่มสร้างไฟล์ pdf
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// กำหนดรายละเอียดของไฟล์ pdf
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('ninenik');
$pdf->SetTitle('TCPDF table report');
$pdf->SetSubject('TCPDF ทดสอบ');
$pdf->SetKeywords('TCPDF, PDF, ทดสอบ,ninenik, guide');

// กำหนดข้อความส่วนแสดง header
$pdf->SetHeaderData(
    PDF_HEADER_LOGO, // โลโก้ กำหนดค่าในไฟล์  tcpdf_config.php 
    PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 001',
    PDF_HEADER_STRING, // กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
    array(0,0,0),  // กำหนดสีของข้อความใน header rgb 
    array(0,0,0)   // กำหนดสีของเส้นคั่นใน header rgb 
);

$pdf->setFooterData(
    array(0,64,0),  // กำหนดสีของข้อความใน footer rgb 
    array(220,44,44)   // กำหนดสีของเส้นคั่นใน footer rgb 
);

// กำหนดฟอนท์ของ header และ footer  กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// ำหนดฟอนท์ของ monospaced  กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

// กำหนดขอบเขตความห่างจากขอบ  กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

// กำหนดแบ่่งหน้าอัตโนมัติ
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

// กำหนดสัดส่วนของรูปภาพ  กำหนดเพิ่มเติมในไฟล์  tcpdf_config.php 
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

// อนุญาตให้สามารถกำหนดรุปแบบ ฟอนท์ย่อยเพิมเติมในหน้าใช้งานได้
$pdf->setFontSubsetting(true);

// กำหนด ฟอนท์
$pdf->SetFont('thsarabun', '', 14, '', true);

// เพิ่มหน้า 
$pdf->AddPage();
$html .= '<div style="text-align:center;">แบบรายงานผลการติดตามการเข้าเรียนของนักเรียน<br>
ชั้นมัธยมศึกษาปีที่ '.$class.'&nbsp;&nbsp;&nbsp;&nbsp; ภาคเรียนที่ '.$_GET[part].'&nbsp;&nbsp;&nbsp;&nbsp; ประจำเดือน&nbsp; '.$month_txt.'&nbsp;&nbsp;&nbsp; ปีการศึกษา '.$_GET[year].'</div>';
$tbl = <<<EOD
<table  border="1" cellspacing="0" cellpadding="1" >
<tr  >
<th style="text-align:center;" rowspan="2">เลขประจำตัว</th>
<th style="text-align:center;" rowspan="2">ชื่อ-สกุล</th>
<th style="text-align:center;" rowspan="2">เลขที่</th>
<th style="text-align:center;" rowspan="2">ห้อง</th>
<th style="text-align:center;" colspan="32">รายวิชา</th>
</tr>
EOD;
$tbl.='<tr>';
$sql2 = 'SELECT sub_code FROM student_subject INNER JOIN student_inclass_main ON (student_subject.std_class=student_inclass_main.class_now AND student_subject.room = student_inclass_main.room_now ) WHERE std_class= ? AND month(student_inclass_main.check_date) = ? GROUP BY student_subject.sub_code';
$r_2 = $db->prepare($sql2);
$r_2->bindParam(1,$_GET['class']);
$r_2->bindParam(2,$_GET['month']);
$r_2->execute();
$c1 = $r_2->rowCount();
$sum_c1 = 32 - $c1;
$tbl2 = '';
for($i;$i<$sum_c1;$i++){
	while($row = $r_2->fetch()){
	$tbl2.='<td style="text-align:center;">'.$row['sub_code'].'</td>';
}
$tbl2.='<td style="text-align:center;">0</td>';
}
$tbl3.='</tr>';
$tblfooter ='
</table>';
$tbl4 = '';
while($row = $r->fetch()){
	$tbl4.='<tr>';
	$tbl4.='<td>'.$row['student_id'].'</td>';
	$tbl4.='<td>'.$row['prename'].' '.$row['name'].' '.$row['surname'].'</td>';
	$tbl4.='<td>'.$row['student_number'].'</td>';
	$tbl4.='<td>'.$row['room'].'</td>';
	$room_s = $row['room'];
	$stu_s = $row['student_id'];
$SQL3 = 'SELECT sub_code from student_subject inner join student_inclass_main on  (student_subject.std_class=student_inclass_main.class_now and student_subject.room = student_inclass_main.room_now ) where std_class=? and month(student_inclass_main.check_date) =? group by student_subject.sub_code';
$r_3 = $db->prepare($SQL3);
$r_3->bindParam(1,$_GET['class']);
$r_3->bindParam(2,$_GET['month']);
$r_3->execute();
$c3 = $r_3->rowCount();
$sum_c3 = 32 - $c1;
for($i=0;$i<$sum_c3;$i++){
while($row3 = $r_3->fetch()){
	$m = $row3['sub_code'];
	$tbl4.='<td>';
$sql_val = "SELECT * from student_inclass_main inner join student_subject on (student_inclass_main.class_now = student_subject.std_class and student_inclass_main.room_now = student_subject.room) where class_now=$_GET[class] and room=$room_s and student_id=$stu_s and month(check_date)=$_GET[month] and (student_inclass_main.check_val like '%v%' or student_inclass_main.check_val like '%w%' or student_inclass_main.check_val like '%s%' or student_inclass_main.check_val like '%l%') and sub_code='$m'";
	$r_val=$db->prepare($sql_val);
	$r_val->execute();
	$rrr = $r_val->fetch();
	$Lnums = 0;
	while($row4 = $rrr){
		$day=date("l",strtotime($row4['check_date']));
		$sql_ref = 'select * from student_ref where ref_id=? and ed_day=?';
				//echo $sql_ref ;	
				$dbquery_ref = $db->prepare($sql_ref);
				$dbquery_ref->bindParam(1,$row4['ref_id']);
				$dbquery_ref->bindParam(2,$day);
				$dbquery_ref->execute();
				$d_num=$dbquery_ref->rowCount();
	}
	$tbl4.='</td>';
} // END WHILE
	$tbl4.='<td>0</td>';
} // END FOR
	$tbl4.='</tr>';
}



ob_end_clean();
$pdf->WriteHTML($html.$tbl.$tbl2.$tbl3.$tbl4.$tblfooter,true,false,true,false);
$pdf->Output();

?>




Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-04-17 10:31:56 By : chiradet2544 View : 1500 Reply : 2
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

มันน่าจะช้าเพราะ Query หรือเปล่าครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-04-17 15:08:56 By : mr.win
 


 
ช้าเหมือนกันครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-04-29 17:59:03 By : Zooter21
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ปัญหาเกี่ยวกับการออกรายงานเป็น PDF Output ออกมาไม่ได้ เปลี่ยนไปใช้ทั้ง TCPDF ก็แล้วทั้ง MPDF ก็แล้ว
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่