<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Kayıt Grafiği</title>
    <!-- Chart.js kütüphanesi -->
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>
<body>
    <h2>Kayıt Grafiği</h2>
    <form method="post" action="">
        <label for="tarih">Tarih Seçin:</label>
        <input type="date" id="tarih" name="tarih">
        <button type="submit">Göster</button>
    </form>

    <?php
    // config dosyasını dahil et
    require_once '../config.php';

    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        $secilen_tarih = $_POST['tarih'];

        // SQL sorgusu ile seçilen tarihteki kayıt sayısını saat bazında al
        $sql = "SELECT DATE_FORMAT(FROM_UNIXTIME(user_kayit), '%H') as saat, COUNT(*) as kayit_sayisi 
                FROM kullanicilar 
                WHERE DATE(FROM_UNIXTIME(user_kayit)) = :secilen_tarih
                GROUP BY DATE_FORMAT(FROM_UNIXTIME(user_kayit), '%H')";

        $stmt = $db->prepare($sql);
        $stmt->execute(['secilen_tarih' => $secilen_tarih]);
        $kayitlar = $stmt->fetchAll(PDO::FETCH_ASSOC);

        // Toplam kayıt sayısını al
        $toplam_kayit = array_sum(array_column($kayitlar, 'kayit_sayisi'));

        // Chart için kullanılacak verileri hazırla
        $labels = [];
        $data = [];

        foreach ($kayitlar as $kayit) {
            $labels[] = $kayit['saat'];
            $data[] = $kayit['kayit_sayisi'];
        }

        // Verileri JSON formatına çevir
        $labels = json_encode($labels);
        $data = json_encode($data);

        // Chart.js ile grafik oluştur
        echo '<canvas id="kayitGrafigi"></canvas>';
        echo '<script>
                var ctx = document.getElementById("kayitGrafigi").getContext("2d");
                var myChart = new Chart(ctx, {
                    type: "line",
                    data: {
                        labels: '.$labels.',
                        datasets: [{
                            label: "Kayıt Sayısı",
                            data: '.$data.',
                            backgroundColor: "rgba(75, 192, 192, 0.2)",
                            borderColor: "rgba(75, 192, 192, 1)",
                            borderWidth: 1
                        }]
                    },
                    options: {
                        scales: {
                            yAxes: [{
                                ticks: {
                                    beginAtZero: true
                                }
                            }]
                        }
                    }
                });
            </script>';

        // Toplam kayıt sayısını ekrana yazdır
        echo '<p>Seçilen tarihte toplam '.$toplam_kayit.' kayıt yapılmıştır.</p>';
    }
    ?>

</body>
</html>
