HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux host 6.8.0-107-generic #107-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 13 19:51:50 UTC 2026 x86_64
User: w230 (1248)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/w230/html/attendance/report_preview.php
<?php
include 'db.php';
session_start();

$teacher_id = $_SESSION["teacher_id"];
$full_name = $_SESSION["full_name"];
//echo"$full_name. $teacher_id";
$conn->set_charset("utf8");

/**ส่งออก pdf file */



// รับค่าจากฟอร์ม
$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 = [];
$total1 = 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';
}

?>
<?php
$logoPath = __DIR__ . '/logo.jpg';
$logoBase64 = '';
if (file_exists($logoPath)) {
    $logoData = file_get_contents($logoPath);
    $logoBase64 = 'data:image/jpg;base64,' . base64_encode($logoData);
}
?>

<?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([
    'tempDir' => __DIR__ . '/tmp', // หรือ path ที่คุณกำหนดเอง
    'margin_top' => 10, // หน่วยเป็นมิลลิเมตร (เช่น 20 = 2 เซนติเมตร)
    '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()
?>



<!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: 18px; }
        .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:rgb(0, 25, 252);
            color: white;
            border: none;
            margin-top: 10px;
            cursor: pointer;
            border-radius: 8%;
        }

        .btn-submit:hover {
            background: #00c6ff;
        }
        .signature-table {
        margin-top: 30px;
        font-size: 14px;
        }

        .signature-row {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            gap: 20px;
            margin-bottom: 40px;
        }

        .signature-cell {
            flex: 1 1 30%;
            min-width: 200px;
            text-align: center;
        }

        .signature-director {
            text-align: center;
            margin-top: 40px;
        }
    </style>
</head>
<body>
<!--<a href="Report.pdf"><button class="btn-submit">Export PDF</button></a>
<a href="attendance_report.php"><button class="btn-submit">BACK</button></a>-->
<div class="container">
    <div class="center">
        <?php if ($logoBase64): ?>
        <img src="<?= $logoBase64 ?>" style="width:120px;"><br>
        <?php endif; ?>
        <h3>รายงานสถิติการมาเรียน</h3>
          <?php 
                //echo !empty($class_level) ? "ชั้น: $class_level" : "ทุกชั้น";
                echo "ระหว่างวันที่: " . date("d/m/Y", strtotime($start_date)) . " ถึง " . date("d/m/Y", strtotime($end_date));
            ?>

    </div>
<?php if (!empty($class_level)): ?>
    <table class="table table-bordered">
        <thead>
            <tr style="border:1px solid #000;">
                <th style="border:1px solid #000;">วันที่</th>
                <?php if (!empty($class_level)): ?>
                <th style="border:1px solid #000;">ชื่อนักเรียน</th>
                <?php endif; ?>
                <th style="border:1px solid #000;">สถานะ</th>
            </tr>
        </thead>
        <tbody>
            <?php while($row = $result1->fetch_assoc()):
                $summary[$row['status']]++;
                $total1++;
            ?>
            <tr style="border:1px solid #000;">
                <td style="border:1px solid #000;"><?= date("d/m/Y", strtotime($row['date'])) ?></td>
                <?php if (!empty($class_level)): ?>
                <td style="border:1px solid #000;"><?= htmlspecialchars($row['fullname']) ?></td>
                <?php endif; ?>
                <td><?= htmlspecialchars($row['status']) ?></td>
            </tr>
            <?php endwhile; ?>
        </tbody>
    </table>

    <!-- สรุปสถิติ -->
    <h5>สถิติการมาเรียน</h5>
    <table class="table table-bordered">
        <thead>
            <tr style="border:1px solid #000;">
                <?php foreach ($statuses as $s): ?>
                    <th style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $s ?></th>
                <?php endforeach; ?>
                <th style="border-right:1px solid #000;padding:3px;text-align:center;">รวม</th>
            </tr>
        </thead>
        <tbody>
            <tr style="border:1px solid #000;">
                <?php foreach ($statuses as $s): ?>
                    <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $summary[$s] ?> (<?= $total1 ? round(($summary[$s]/$total1)*100, 2) : 0 ?>%)</td>
                <?php endforeach; ?>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $total1 ?></td>
            </tr>
        </tbody>
    </table>
<?php endif; ?>


    <!--cccc-->
    <table class="table table-bordered table-striped table-hover">
        <thead class="table-dark text-center align-middle">
            <tr style="border:1px solid #000;">
                <th style="border:1px solid #000;">ระดับชั้น</th>
                <th style="border:1px solid #000;">จำนวนนักเรียนทั้งหมด</th>
                <th style="border:1px solid #000;">เพศหญิง</th>
                <th style="border:1px solid #000;">เพศชาย</th>
                <th style="border:1px solid #000;">มา</th>
                <th style="border:1px solid #000;">ลา</th>
                <th style="border:1px solid #000;">ขาด</th>
                <th style="border:1px solid #000;">สาย</th>
                <th style="border:1px solid #000;">ป่วย</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach ($data as $row): ?>
            <tr class="text-center" style="border:1px solid #000;" >
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= htmlspecialchars($row['class_level']) ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $row['total_students'] ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $row['female_students'] ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $row['male_students'] ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $row['present'] ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $row['leave_count'] ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $row['absent'] ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $row['late'] ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $row['sick'] ?></td>
            </tr>
            <?php endforeach; ?>
        </tbody>
        <tfoot class="table-secondary text-center fw-bold">
            <tr style="border:1px solid #000;">
                <td style="border-right:1px solid #000;padding:3px;text-align:center;">รวมทั้งหมด</td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $sum['total_students'] ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $sum['female_students'] ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $sum['male_students'] ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $sum['present'] ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $sum['leave_count'] ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $sum['absent'] ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $sum['late'] ?></td>
                <td style="border-right:1px solid #000;padding:3px;text-align:center;"><?= $sum['sick'] ?></td>
            </tr>
        </tfoot>
    </table>
<div>มาเรียนร้อยละ: <u><?= percent($sum['present'], $sum['total_students']) ?></u> %&nbsp;&nbsp;&nbsp;
    ลาร้อยละ: <u><?= percent($sum['leave_count'], $sum['total_students'])?></u> %&nbsp;&nbsp;&nbsp;
    ขาดร้อยละ: <u><?= percent($sum['absent'], $sum['total_students']) ?></u> %&nbsp;&nbsp;&nbsp;
    สายร้อยละ: <u><?= percent($sum['late'], $sum['total_students']) ?></u> %&nbsp;&nbsp;&nbsp;
    ป่วยร้อยละ: <u><?= percent($sum['sick'], $sum['total_students']) ?></u> %
</div>
    <!--cccc-->

    <!-- ลายเซ็น -->
    <!-- พื้นที่สำหรับลายเซ็น วันจันทร์-->               
    <?php if($teacher_id == 1):?>
        <div class="signature-table">
            <div class="signature-row">
                    <div class="signature-cell">
                        ลงชื่อ<img src="sign/phachan.jpg" style="width:120px;"><br>
                        ( นายประชัญ  สีทา )<br>
                        คุณครูเวรประจำวัน
                    </div>
                    <div class="signature-cell">
                        ลงชื่อ<img src="sign/monladda.jpg" style="width:100px;"><br>
                        ( นางสาวมนลัดดา สีบุญเรือง )<br>
                        คุณครูเวรประจำวัน
                    </div>
                    <div class="signature-cell">
                        ลงชื่อ<img src="sign/kunatya.jpg" style="width:120px;"><br>
                        ( นางสาวคุณัญญา ประถมภาส )<br>
                        คุณครูเวรประจำวัน
                    </div>
                </div>

                <div class="signature-director">
                    ลงชื่อ<img src="sign/director.jpg" style="width:150px;"><br>
                    ( นายกิตติศักดิ์  มครนันท์ )<br>
                    ผู้อำนวยการโรงเรียนบ้านหัววัวหนองนารีตาตวด
                </div>
            </div>
        </div> <!-- ปิด container -->
    <?php endif; ?>
    <!-- พื้นที่สำหรับลายเซ็นs-->    
    <?php if($teacher_id == 2):?>
    <div class="signature-table">
        <div class="signature-row">
                <div class="signature-cell">
                    ลงชื่อ<img src="sign/nisachon.jpg" style="width:120px;"><br>
                    ( นางนิศาชล อนุพันธ์ )<br>
                    คุณครูเวรประจำวัน
                </div>
                <div class="signature-cell">
                    ลงชื่อ<img src="sign/worawut.jpg" style="width:100px;"><br>
                    ( นายวรวุฒิ สุทนต์ )<br>
                    คุณครูเวรประจำวัน
                </div>
                <div class="signature-cell">
                    ลงชื่อ<img src="sign/pornpinya.jpg" style="width:120px;"><br>
                    ( นางสาวพรภิญญา มั่นจิตร )<br>
                    คุณครูเวรประจำวัน
                </div>
                <div class="signature-cell">
                    ลงชื่อ<img src="sign/patthama.jpg" style="width:120px;"><br>
                    ( นางสาวปัทมาพร สงคราม )<br>
                    คุณครูเวรประจำวัน
                </div>
            </div>

            <div class="signature-director">
                ลงชื่อ<img src="sign/director.jpg" style="width:150px;"><br>
                ( นายกิตติศักดิ์  มครนันท์ )<br>
                ผู้อำนวยการโรงเรียนบ้านหัววัวหนองนารีตาตวด
            </div>
        </div>
    </div> <!-- ปิด container -->
    <?php endif; ?>
    <!-- พื้นที่สำหรับลายเซ็นs-->    
    <?php if($teacher_id == 3):?>
    <div class="signature-table">
        <div class="signature-row">
                <div class="signature-cell">
                    ลงชื่อ<img src="sign/knote.jpg" style="width:120px;"><br>
                    ( นายวชิรวิชญ์ พิมทา )<br>
                    คุณครูเวรประจำวัน
                </div>
                <div class="signature-cell">
                    ลงชื่อ<img src="sign/nucharee.jpg" style="width:100px;"><br>
                    ( นางสาวนุชชะลี มะโนรัตน์ )<br>
                    คุณครูเวรประจำวัน
                </div>
                <div class="signature-cell">
                    ลงชื่อ<img src="sign/oranuch.jpg" style="width:120px;"><br>
                    ( นางสาวอรนุช นรสาร )<br>
                    คุณครูเวรประจำวัน
                </div>
            </div>

            <div class="signature-director">
                ลงชื่อ<img src="sign/director.jpg" style="width:150px;"><br>
                ( นายกิตติศักดิ์  มครนันท์ )<br>
                ผู้อำนวยการโรงเรียนบ้านหัววัวหนองนารีตาตวด
            </div>
        </div>
    </div> <!-- ปิด container -->
    <?php endif; ?>
    <!-- พื้นที่สำหรับลายเซ็นs-->    
    <?php if($teacher_id == 4):?>
        <div class="signature-table">
            <div class="signature-row">
                    <div class="signature-cell">
                        ลงชื่อ<img src="sign/sarawut.jpg" style="width:120px;"><br>
                        ( นายสราวุธ  สมพงษ์ )<br>
                        คุณครูเวรประจำวัน
                    </div>
                    <div class="signature-cell">
                        ลงชื่อ<img src="sign/sukanda.jpg" style="width:100px;"><br>
                        ( นางสุกานดา  สมพงษ์ )<br>
                        คุณครูเวรประจำวัน
                    </div>
                    <div class="signature-cell">
                        ลงชื่อ<img src="sign/ramita.jpg" style="width:120px;"><br>
                        ( นางสาวรมิตา  ผลาผล )<br>
                        คุณครูเวรประจำวัน
                    </div>
            </div>
            <div class="signature-director">
                    ลงชื่อ<img src="sign/director.jpg" style="width:150px;"><br>
                    ( นายกิตติศักดิ์  มครนันท์ )<br>
                    ผู้อำนวยการโรงเรียนบ้านหัววัวหนองนารีตาตวด
            </div>
        </div>
    </div> <!-- ปิด container -->
    <?php endif; ?>
    <?php if($teacher_id == 5):?>
    <div class="signature-table">
        <div class="signature-row">
                <div class="signature-cell">
                    ลงชื่อ<img src="sign/tanawat.jpg" style="width:120px;"><br>
                    ( นายธนวัตร ตามบุญ )<br>
                    คุณครูเวรประจำวัน
                </div>
                <div class="signature-cell">
                    ลงชื่อ<img src="sign/patiya.jpg" style="width:100px;"><br>
                    ( นางสาวปฏิญญา สารโท )<br>
                    คุณครูเวรประจำวัน
                </div>
                <div class="signature-cell">
                    ลงชื่อ<img src="sign/vilasinee.jpg" style="width:120px;"><br>
                    ( นางวิลาสีนี คำเลิศ )<br>
                    คุณครูเวรประจำวัน
                </div>
            </div>

            <div class="signature-director">
                ลงชื่อ<img src="sign/director.jpg" style="width:150px;"><br>
                ( นายกิตติศักดิ์  มครนันท์ )<br>
                ผู้อำนวยการโรงเรียนบ้านหัววัวหนองนารีตาตวด
            </div>
        </div>
    </div> <!-- ปิด container -->
    <?php endif; ?>
</div>
</body>
</html>
<?php


 // คำสั่งการ Export ไฟล์เป็น PDF
$html = ob_get_contents();      // เรียกใช้ฟังก์ชัน รับข้อมูลที่จะมาแสดงผล
$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>