<?php
date_default_timezone_set('Asia/Tehran');
include("jdf.php");
?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>نمایش نتایج</title>
  <link rel="stylesheet" href="style/style-00.css">
</head>
<body>
    <form method="POST" action="">
        <label for="start">تاریخ شروع:</label>
        <jb-date-input format="YYYY-MM-DD" id="start" name="start" style="padding: 10px;width: 150px;display:inline-block;"></jb-date-input>

        <label for="end">تاریخ پایان:</label>
        <jb-date-input format="YYYY-MM-DD" id="end" name="end" style="padding: 10px;width: 150px;display:inline-block;"></jb-date-input>

        <button type="submit" name="submit">نمایش نتایج</button>
    </form>

    <?php
    // اتصال به دیتابیس
    include 'connection.php';

    // بررسی اتصال
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }

    // چک کردن ارسال فرم
    if (isset($_POST['submit'])) {
        // واکشی داده‌ها از فرم
$dateStart = $_POST['start'] . ' 00:00:00';
$dateEnd = $_POST['end'] . ' 23:59:59';
     
     
//$dateStart = date('Y-m-d H:i:s', strtotime($_POST['start']));
//$dateEnd = date('Y-m-d H:i:s', strtotime($_POST['end']));

        // کوئری برای شمارش تعداد رکوردها در بازه تاریخی انتخاب شده
        $countSql = "SELECT COUNT(*) as count FROM responses WHERE date_time BETWEEN '$dateStart' AND '$dateEnd'";
        //$countSql = "SELECT COUNT(*) as count FROM responses WHERE food_quality IN ('Poor', 'Fair', 'Good', 'Excellent') AND date_time BETWEEN '$dateStart' AND '$dateEnd'";
        $countResult = mysqli_query($conn, $countSql);
        $countRow = mysqli_fetch_assoc($countResult);
        $count = $countRow['count'];

        // نمایش بازه تاریخی انتخاب شده
        echo '<h1>نمایش نتایج برای بازه تاریخی ' . jdate("d-m-Y", strtotime($dateStart)) . ' تا ' . jdate("d-m-Y", strtotime($dateEnd)) . '</h1>';

        // نمایش تعداد رکوردها
        echo '<p>تعداد کل رکوردهای استفاده شده: ' . $count . '</p>';

        // محاسبه تعداد جواب‌ها برای هر کیفیت
        $foodCounts = countResponses($conn, $dateStart, $dateEnd, 'food_quality');
        $serviceCounts = countResponses($conn, $dateStart, $dateEnd, 'service_quality');

        // محاسبه درصدها
        $foodPercentages = calculatePercentages($foodCounts);
        $servicePercentages = calculatePercentages($serviceCounts);

        // نمایش نتایج
        echo '<h2>کیفیت غذا</h2>';
        echo '<ul>';
        echo '<li>ضعیف: ' . $foodPercentages['Poor'] . '%</li>';
        echo '<li>متوسط: ' . $foodPercentages['Fair'] . '%</li>';
        echo '<li>خوب: ' . $foodPercentages['Good'] . '%</li>';
        echo '<li>عالی: ' . $foodPercentages['Excellent'] . '%</li>';
        echo '</ul>';

        echo '<h2>کیفیت سرویس</h2>';
        echo'<ul>';
        echo '<li>ضعیف: ' . $servicePercentages['Poor'] . '%</li>';
        echo '<li>متوسط: ' . $servicePercentages['Fair'] . '%</li>';
        echo '<li>خوب: ' . $servicePercentages['Good'] . '%</li>';
        echo '<li>عالی: ' . $servicePercentages['Excellent'] . '%</li>';
        echo '</ul>';

        // بستن اتصال به دیتابیس
        mysqli_close($conn);
    }

    // تابع محاسبه تعداد جواب‌ها برای هر کیفیت
    function countResponses($conn, $dateStart, $dateEnd, $quality) {
        $sql = "SELECT COUNT(*) as count, $quality FROM responses WHERE date_time BETWEEN '$dateStart' AND '$dateEnd' GROUP BY $quality";
        $result = mysqli_query($conn, $sql);

        $counts = array();
        if (mysqli_num_rows($result) > 0) {
            while($row = mysqli_fetch_assoc($result)) {
                $counts[$row[$quality]] = $row['count'];
            }
        }

        return $counts;
    }

    // تابع محاسبه درصدها
    function calculatePercentages($counts) {
        $total = array_sum($counts);
        $percentages = array();

        foreach ($counts as $key => $count) {
            $percentages[$key] = round(($count / $total) * 100);
        }

        return $percentages;
    }
    ?>
    <script src="JBDateInput.umd.js"></script>
    <style> 
        body{
          --jb-date-input-border-radius:5px;
          --jb-date-input-border-color: #ccc;
          --jb-date-input-bgcolor: #fff;
        }
    </style>
</body>
</html>
در این کد میخوام اگر بازه تاریخ انتخاب نکردم و دکمه نمایش رو زدم نتایج بازه تاریخی از اول تا آخر هر آنچه در دیتابیس هست رو نشون بده ولی اگر بازه تاریخی رو انتخاب کردم نتایج همون بازه رو نمایش بده