query('SELECT DATE(event_time) as date, COUNT(*) as total FROM entry_events GROUP BY DATE(event_time) ORDER BY date DESC LIMIT 10'); $results = $stmt->fetchAll(); foreach ($results as $row) { echo " {$row['date']}: {$row['total']} events\n"; } // Cek data hari ini echo "\n2. Data hari ini:\n"; $stmt = $db->query('SELECT COUNT(*) as total FROM entry_events WHERE DATE(event_time) = CURDATE()'); $result = $stmt->fetch(); echo " Total: {$result['total']}\n"; // Cek sample data echo "\n3. Sample data (5 terakhir):\n"; $stmt = $db->query('SELECT id, location_code, gate_code, category, event_time FROM entry_events ORDER BY id DESC LIMIT 5'); $results = $stmt->fetchAll(); foreach ($results as $row) { echo " ID: {$row['id']} | {$row['location_code']} | {$row['gate_code']} | {$row['category']} | {$row['event_time']}\n"; } // Cek apakah data punya location/gate yang valid echo "\n4. Validasi data:\n"; $stmt = $db->query(" SELECT COUNT(*) as total, COUNT(CASE WHEN location_code IS NULL OR location_code = '' THEN 1 END) as null_location, COUNT(CASE WHEN gate_code IS NULL OR gate_code = '' THEN 1 END) as null_gate, COUNT(CASE WHEN category IS NULL OR category = '' THEN 1 END) as null_category FROM entry_events WHERE DATE(event_time) = CURDATE() "); $result = $stmt->fetch(); echo " Total hari ini: {$result['total']}\n"; echo " Null location_code: {$result['null_location']}\n"; echo " Null gate_code: {$result['null_gate']}\n"; echo " Null category: {$result['null_category']}\n"; // Cek apakah location/gate ada di master echo "\n5. Validasi dengan master data:\n"; $stmt = $db->query(" SELECT COUNT(*) as total_valid FROM entry_events e INNER JOIN locations l ON e.location_code = l.code AND l.is_active = 1 INNER JOIN gates g ON e.location_code = g.location_code AND e.gate_code = g.gate_code AND g.is_active = 1 WHERE DATE(e.event_time) = CURDATE() "); $result = $stmt->fetch(); echo " Data valid (ada di master): {$result['total_valid']}\n";