35 lines
1.1 KiB
PHP
35 lines
1.1 KiB
PHP
<?php
|
|
// php/read_pesan.php
|
|
require_once 'koneksi.php';
|
|
if (session_status() === PHP_SESSION_NONE) { session_start(); }
|
|
header('Content-Type: application/json; charset=utf-8');
|
|
|
|
$userId = intval($_SESSION['user_id'] ?? 0);
|
|
if (!$userId) {
|
|
echo json_encode([]); exit;
|
|
}
|
|
|
|
// Ambil pesan broadcast + pesan yang ditujukan ke user ini
|
|
$sql = "SELECT pm.*,
|
|
p.nama_lengkap AS nama_pengirim, p.role AS role_pengirim,
|
|
DATE_FORMAT(pm.created_at, '%d/%m/%Y %H:%i') AS created_fmt
|
|
FROM pesan_komunikasi pm
|
|
JOIN pengguna p ON pm.pengirim_id = p.id
|
|
WHERE pm.penerima_id IS NULL OR pm.penerima_id = {$userId}
|
|
ORDER BY pm.created_at DESC
|
|
LIMIT 100";
|
|
|
|
$result = mysqli_query($conn, $sql);
|
|
$data = [];
|
|
if ($result) {
|
|
while ($row = mysqli_fetch_assoc($result)) { $data[] = $row; }
|
|
}
|
|
|
|
// Mark as read — semua pesan yang belum dibaca oleh user ini
|
|
$markSql = "UPDATE pesan_komunikasi SET status='dibaca'
|
|
WHERE status='baru' AND (penerima_id = {$userId} OR penerima_id IS NULL) AND pengirim_id != {$userId}";
|
|
mysqli_query($conn, $markSql);
|
|
|
|
echo json_encode($data);
|
|
?>
|