$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.' ภาคเรียนที่ '.$_GET[part].' ประจำเดือน '.$month_txt.' ปีการศึกษา '.$_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();
?>