PHP 8 ile bir kurslar listesi oluşturmak, kullanıcıların kurslara kolayca erişebilmesi için etkili bir yöntemdir. Aşağıda, kurslar listesinin nasıl oluşturulacağına dair adım adım bir rehber bulabilirsiniz.
1. Veritabanı Tasarımı
Öncelikle, kursları depolamak için bir veritabanı tablosu oluşturmalısınız. İşte basit bir kurslar tablosu örneği:
CREATE TABLE courses (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
2. Veritabanı Bağlantısı
PDO kullanarak veritabanınıza bağlantı kurun. Aşağıdaki örnek, basit bir veritabanı bağlantısı sağlamaktadır:
$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
3. Kursları Çekme
Kursları veritabanından çekmek için bir fonksiyon oluşturun:
function getCourses(
) {
global $pdo;
$stmt = $pdo->query('SELECT * FROM courses');
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
4. Kursları Listeleme
Alınan kursları bir liste halinde görüntülemek için aşağıdaki gibi bir fonksiyon yazabilirsiniz:
function renderCourseList(
) {
$courses = getCourses();
echo '<ul>';
foreach ($courses as $course) {
echo '<li>';
echo '<h3>' . htmlspecialchars($course['title']) . '</h3>';
echo '<p>' . htmlspecialchars($course['description']) . '</p>';
echo '<small>' . htmlspecialchars($course['created_at']) . '</small>';
echo '</li>';
}
echo '</ul>';
}
// Kursları render et
renderCourseList();
5. Kullanıcı Arayüzü
Kursları daha çekici hale getirmek için CSS kullanabilirsiniz. Örneğin:
ul {
list-style-type: none;
padding: 0;
}
li {
margin: 20px 0;
border: 1px solid #ccc;
padding: 15px;
border-radius: 5px;
}
h3 {
margin: 0 0 10px 0;
}
6. Güvenlik Önlemleri
Kullanıcıdan alınan verileri her zaman doğrulayın ve sanitize edin. SQL enjeksiyonuna karşı koruma sağlamak için hazırlanmış sorgular (prepared statements) kullanmalısınız.
7. Ek Özellikler
Kurs listesine ek özellikler ekleyebilirsiniz:
- Kurs Ekleme: Yeni kurslar eklemek için bir form oluşturabilirsiniz.
- Kurs Arama: Kullanıcıların belirli bir kursu bulabilmesi için bir arama çubuğu ekleyebilirsiniz.
- Kurs Detay Sayfası: Her bir kurs için detay sayfası oluşturarak daha fazla bilgi sunabilirsiniz.
Sonuç
Bu adımları izleyerek PHP 8 ile dinamik bir kurslar listesi oluşturabilirsiniz. İhtiyaçlarınıza göre bu yapıyı daha da geliştirip özelleştirebilirsiniz. Ayrıca, Laravel veya Symfony gibi PHP framework'lerini kullanarak daha karmaşık projeler geliştirmeyi de düşünebilirsiniz.