connect_error) { die(json_encode(["code" => "error", "message" => "Connection failed: " . $conn->connect_error])); } $method = $_POST['method']; $user_id = $_SESSION['iduserlogin']; if ($method == 'getNotifications') { $sql = "SELECT * FROM notifications"; $all_notifications = []; $result = $conn->query($sql); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { $all_notifications[] = $row; } } // If there are no notifications, return an empty response if (empty($all_notifications)) { die(json_encode( [ 'code' => 'success', 'message' => 'No notifications found' ] )); } else { $all_notification_ids = array_column($all_notifications, 'id'); $all_notification_ids_str = implode(',', $all_notification_ids); $sql = "SELECT notification_id FROM seen_notifications WHERE notification_id IN ($all_notification_ids_str) AND user_id = $user_id"; $result = $conn->query($sql); $seen_notification_ids = []; if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { $seen_notification_ids[] = $row['notification_id']; } } $seen_notifications = []; foreach ($all_notifications as $notification) { if (in_array($notification['id'], $seen_notification_ids)) { $seen_notifications[] = $notification; } } $unseen_notifications = array_udiff($all_notifications, $seen_notifications, function ($a, $b) { return $a['id'] <=> $b['id']; }); $new_unseen_notifications = []; foreach ($unseen_notifications as $notification) { array_push($new_unseen_notifications, $notification); } $new_seen_notifications = []; foreach ($seen_notifications as $notification) { array_push($new_seen_notifications, $notification); } $conn->close(); // Send JSON response without further encoding the arrays die(json_encode( [ 'code' => 'success', 'all_notifications' => $all_notifications, 'seen_notifications' => $new_seen_notifications, 'unseen_notifications' => $new_unseen_notifications ] )); } } if ($method == 'markAsSeen') { $notification_id = $_POST['notification_id']; $sql = "INSERT INTO seen_notifications (notification_id, user_id) VALUES ($notification_id, $user_id)"; $conn->query($sql); $conn->close(); die(json_encode(['code' => 'success', 'message' => 'Notification marked as seen'])); }