prepare($sql); $stmt->execute($params); $challenges = $stmt->fetchAll(); if (count($challenges) > 0) { foreach ($challenges as $challenge) { $image_data = pexels_get('https://api.pexels.com/v1/search?query=' . urlencode($challenge['title']) . '&per_page=1'); if ($image_data && isset($image_data['photos'][0])) { $image_url = $image_data['photos'][0]['src']['large']; } else { $image_url = 'https://via.placeholder.com/600x400'; // Default placeholder } echo '
'; echo '
'; echo '
'; echo '' . htmlspecialchars($challenge['title']) . ''; echo '
'; echo '
' . htmlspecialchars($challenge['title']) . '
'; echo '' . htmlspecialchars($challenge['difficulty']) . ''; echo '
'; echo '
'; echo '
'; echo '

' . htmlspecialchars(substr($challenge['description'], 0, 100)) . '...

'; echo '
'; echo '' . htmlspecialchars($challenge['learning_style']) . ''; echo '
'; echo '
'; echo '
'; echo '
'; } } else { echo '
No challenges match your criteria.
'; }