404 Not Found"; exit; } $slug = $_GET['slug']; $pdo = getDbConnection(); // Query the person $stmt = $pdo->prepare('SELECT id, name, slug, image, bio, offical_website, grokipedia, facebook_handle, x_handle, instagram_handle FROM people WHERE slug = :slug LIMIT 1'); $stmt->execute(['slug' => $slug]); $person = $stmt->fetch(PDO::FETCH_ASSOC); if (!$person) { http_response_code(404); echo "

404 Not Found

"; exit; } // Query authored books $stmt = $pdo->prepare('SELECT b.name, b.slug FROM books b JOIN book_person_author bpa ON b.id = bpa.book_id WHERE bpa.author_id = :person_id ORDER BY b.name ASC'); $stmt->execute(['person_id' => $person['id']]); $authored_books = $stmt->fetchAll(PDO::FETCH_ASSOC); // Query read books $stmt = $pdo->prepare('SELECT b.name, b.slug FROM books b JOIN book_person_reader bpr ON b.id = bpr.book_id WHERE bpr.person_id = :person_id ORDER BY b.name ASC'); $stmt->execute(['person_id' => $person['id']]); $read_books = $stmt->fetchAll(PDO::FETCH_ASSOC); // Query personalities $stmt = $pdo->prepare('SELECT p.slug, p.personality, COUNT(DISTINCT pp2.person_id) as people_count FROM personalities p JOIN person_personality pp ON p.id = pp.personality_id AND pp.person_id = :person_id LEFT JOIN person_personality pp2 ON p.id = pp2.personality_id GROUP BY p.id, p.slug, p.personality ORDER BY p.personality ASC'); $stmt->execute(['person_id' => $person['id']]); $personalities = $stmt->fetchAll(PDO::FETCH_ASSOC); $person_image_path = '/images/people/' . $slug . '.jpg'; $person_image_exists = file_exists($_SERVER['DOCUMENT_ROOT'] . $person_image_path); ?> - AspireBookClub.com