query("SELECT COUNT(*) FROM teledramas"); $total_items = $total_stmt->fetchColumn(); $stmt = $conn->prepare("SELECT * FROM teledramas ORDER BY sort_order ASC LIMIT :limit OFFSET :offset"); $stmt->bindValue(':limit', $items_per_page, PDO::PARAM_INT); $stmt->bindValue(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); $teledramas = $stmt->fetchAll(PDO::FETCH_ASSOC); } elseif ($conn instanceof mysqli) { $result = $conn->query("SELECT COUNT(*) as total FROM teledramas"); $row = $result->fetch_assoc(); $total_items = $row['total'] ?? 0; $stmt = $conn->prepare("SELECT * FROM teledramas ORDER BY sort_order ASC LIMIT ? OFFSET ?"); $stmt->bind_param("ii", $items_per_page, $offset); $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { $teledramas[] = $row; } } $total_pages = ceil($total_items / $items_per_page); // Build episode counts in one query (avoid N+1) $counts = []; $ids = array_column($teledramas, 'id'); if (!empty($ids)) { if ($conn instanceof PDO) { // prepare IN placeholders $placeholders = implode(',', array_fill(0, count($ids), '?')); $stmt = $conn->prepare("SELECT teledrama_id, COUNT(*) AS cnt FROM teledrama_videos WHERE teledrama_id IN ($placeholders) GROUP BY teledrama_id"); $stmt->execute($ids); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($rows as $r) $counts[$r['teledrama_id']] = (int)$r['cnt']; } elseif ($conn instanceof mysqli) { // safe integer list $safeIds = array_map('intval', $ids); $in = implode(',', $safeIds); $res = $conn->query("SELECT teledrama_id, COUNT(*) AS cnt FROM teledrama_videos WHERE teledrama_id IN ($in) GROUP BY teledrama_id"); while ($r = $res->fetch_assoc()) $counts[$r['teledrama_id']] = (int)$r['cnt']; } } ?>