File: /var/www/w230/html/attendance/export_pdf.php
<?php
include 'db.php';
/*
require_once __DIR__ . '/vendor/autoload.php';
$defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];
$defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];
$mpdf = new \Mpdf\Mpdf([
'fontDir' => array_merge($fontDirs, [
__DIR__ . '/tmp',
]),
'fontdata' => $fontData + [
'sarabun' => [
'R' => 'THSarabunNew.ttf',
'I' => 'THSarabunNew Italic.ttf',
'B' => 'THSarabunNew Bold.ttf',
'BI' => 'THSarabunNew BoldItalic.ttf'
]
],
'default_font' => 'sarabun'
]);
// สิ้นสุดคำสั่ง Export ไฟล์ PDF ในส่วนบน เริ่มกำหนดตำแหน่งเริ่มต้นในการนำเนื้อหามาแสดงผลผ่าน
$mpdf->SetFont('sarabun','',14);
ob_start(); //ฟังก์ชัน ob_start()
*/
?>
<?php
/*
// รับค่าจากฟอร์ม
$class_level = $_GET['class_level'] ?? '';
$start_date = $_GET['start_date'] ?? '';
$end_date = $_GET['end_date'] ?? '';
//echo "ห้อง:".$class_level."จากวันที่:". $start_date."ถึงวันที่:". $end_date;
// เงื่อนไข WHERE
$where1 = "WHERE a.date BETWEEN '$start_date' AND '$end_date'";
if (!empty($class_level)) {
$where1 .= " AND s.class_level = '$class_level'";
}
// ดึงข้อมูลรายชื่อ
$sql1 = "SELECT s.fullname, s.class_level, a.date, a.status
FROM attendance a
JOIN students s ON a.student_id = s.id
$where1
ORDER BY a.date DESC, s.fullname ASC";
$result1 = $conn->query($sql1);
// เก็บข้อมูลสถิติ
$summary = [];
$total = 0;
$statuses = ['มา', 'ขาด', 'ลา', 'สาย', 'ป่วย'];
foreach ($statuses as $status) {
$summary[$status] = 0;
}
?>
<!--cccccccc--->
<?php
// สร้างเงื่อนไข SQL ตามช่วงเวลาและชั้นเรียน
$where = "WHERE attendance.date BETWEEN '$start_date' AND '$end_date'";
if ($class_level != '') {
$where .= " AND students.class_level = '$class_level'";
}
// SQL รวมข้อมูลรายงานแยกตามระดับชั้น พร้อมนับเพศโดยอ่านจาก fullname
$sql1 = "SELECT
students.class_level,
COUNT(DISTINCT students.id) AS total_students,
SUM(CASE WHEN students.fullname LIKE 'ด.ญ.%' OR students.fullname LIKE 'นางสาว%' THEN 1 ELSE 0 END) AS female_students,
SUM(CASE WHEN students.fullname LIKE 'ด.ช.%' OR students.fullname LIKE 'นาย%' THEN 1 ELSE 0 END) AS male_students,
SUM(CASE WHEN attendance.status = 'มา' THEN 1 ELSE 0 END) AS present,
SUM(CASE WHEN attendance.status = 'ลา' THEN 1 ELSE 0 END) AS leave_count,
SUM(CASE WHEN attendance.status = 'ขาด' THEN 1 ELSE 0 END) AS absent,
SUM(CASE WHEN attendance.status = 'สาย' THEN 1 ELSE 0 END) AS late,
SUM(CASE WHEN attendance.status = 'ป่วย' THEN 1 ELSE 0 END) AS sick
FROM students
LEFT JOIN attendance ON attendance.student_id = students.id
$where
GROUP BY students.class_level
ORDER BY students.class_level";
$result = $conn->query($sql1);
// เก็บข้อมูลสำหรับแสดงผลและสรุป
$data = [];
$sum = [
'total_students' => 0,
'female_students' => 0,
'male_students' => 0,
'present' => 0,
'leave_count' => 0,
'absent' => 0,
'late' => 0,
'sick' => 0
];
while ($row = $result->fetch_assoc()) {
$data[] = $row;
// รวมยอดสรุป
foreach ($sum as $key => &$value) {
$value += (int)$row[$key];
}
}
// ฟังก์ชันคำนวณร้อยละ
function percent($num, $total) {
return $total > 0 ? number_format(($num / $total) * 100, 2) : '0.00';
}
*/
?>
<!--0000000000000000000000000000000000000000000000000000000000000000000000000-->
<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<title>รายงานสถิติการมาเรียน</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
<style>
body { font-size: 20px; }
.center { text-align: center; }
table { width: 100%; border-collapse: collapse; margin-top: 20px; }
th, td { font-size: 20px; border: 2px solid black; padding: 5px; text-align: center; }
.signature-table { margin-top: 20px; width: 100%; text-align: center; }
.signature-space { height: 80px; }
.btn-submit {
background: #4facfe;
color: white;
border: none;
margin-top: 20px;
cursor: pointer;
}
.btn-submit:hover {
background: #00c6ff;
}
</style>
</head>
<body>
test
</body>
</html>
<!--------------------------ส่วนท้าย------------------------>
<?php
/*
// คำสั่งการ Export ไฟล์เป็น PDF
$html = ob_get_contents(); // เรียกใช้ฟังก์ชัน รับข้อมูลที่จะมาแสดงผล
$a=file_get_contents("http://localhost/attendance/content.php");
$mpdf->WriteHTML($a);
$mpdf->WriteHTML($html); // รับข้อมูลเนื้อหาที่จะแสดงผลผ่านตัวแปร $html
$mpdf->Output('Report.pdf'); //สร้างไฟล์ PDF ชื่อว่า myReport.pdf
ob_end_flush(); // ปิดการแสดงผลข้อมูลของไฟล์ HTML ณ จุดนี้
*/
?>
<!--การสร้างลิงค์ เรียกไฟล์ myReport.pdf แสดงผลไฟล์ PDF -->
<a href="Report.pdf"><button class="btn btn-primary">Export PDF</button> </a>