- Published on
Veritabanı ile Dinamik İçerik Yönetimi – PHP & MySQL Örneği
PHP ve MySQL, web projelerinde sıkça tercih edilen güçlü teknolojilerdir. Bu yazıda, PHP ve MySQL kullanarak dinamik içerik yönetim sistemi (CMS) geliştirmeye yönelik temel adımları ele alacağım. Bu sayede veritabanı ile içerik yönetimi yaparak, dinamik bir panel oluşturabilirsiniz.
CMS Nedir?
İçerik Yönetim Sistemi (CMS), bir web sitesinin içeriğini yönetmek, düzenlemek ve güncellemek için kullanılan yazılımdır. CMS’ler sayesinde, kullanıcılar herhangi bir teknik bilgiye sahip olmadan içerik ekleyebilir ve düzenleyebilir. Örneğin, makale, blog yazısı veya haber güncellemeleri gibi içerikleri kolayca ekleyebilir ve yönetebilirsiniz.
Veritabanı Yapısı
PHP ile CMS yaparken, veritabanı yapınız çok önemlidir. Bu yazıda, içeriklerin başlık, içerik ve tarih gibi bilgilerini saklayacak bir veritabanı tablosu oluşturacağız.
Veritabanı Tablosu Örneği
Aşağıdaki SQL sorgusuyla articles
adlı bir tablo oluşturacağız. Bu tablo, her makale için başlık, içerik ve oluşturulma tarihini saklayacaktır.
CREATE TABLE articles (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Bu tabloyu oluşturduktan sonra PHP tarafında veritabanına bağlanarak, içerik ekleyebilir ve mevcut içerikleri listeleyebiliriz.
PHP ile Veritabanı Bağlantısı
PHP ile veritabanına bağlanmak için aşağıdaki gibi bir bağlantı dosyası oluşturabiliriz. Bu dosya, MySQL veritabanına bağlanacak ve bağlantı hatalarını kontrol edecektir.
<?php
$host = 'localhost';
$user = 'root';
$password = '';
$dbname = 'cms_database';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Bu dosya, veritabanı bağlantısını oluşturur ve bağlantı hatalarını ekrana yazdırır.
İçerik Ekleme
Yeni bir içerik eklemek için bir form oluşturabiliriz. Kullanıcı bu formu kullanarak başlık ve içerik bilgilerini girecek ve form verileri PHP ile alınıp veritabanına kaydedilecektir.
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$title = $_POST['title'];
$content = $_POST['content'];
$stmt = $pdo->prepare("INSERT INTO articles (title, content) VALUES (?, ?)");
$stmt->execute([$title, $content]);
echo "İçerik başarıyla eklendi!";
}
?>
<form action="" method="post">
<input type="text" name="title" placeholder="Başlık" required>
<textarea name="content" placeholder="İçerik" required></textarea>
<button type="submit">Ekle</button>
</form>
Bu form, kullanıcılardan başlık ve içerik alır. PHP tarafında, gelen veriler veritabanına kaydedilir.
İçerik Listeleme
Veritabanından içerikleri listelemek için PHP kullanabiliriz. Aşağıdaki kod, veritabanındaki içerikleri çekip sıralayarak kullanıcıya gösterecektir.
<?php
$stmt = $pdo->query("SELECT * FROM articles ORDER BY created_at DESC");
$articles = $stmt->fetchAll();
foreach ($articles as $article) {
echo "<h2>" . htmlspecialchars($article['title']) . "</h2>";
echo "<p>" . nl2br(htmlspecialchars($article['content'])) . "</p>";
echo "<small>" . $article['created_at'] . "</small><hr>";
}
?>
Bu kod, articles
tablosundaki tüm içerikleri alır, sırasıyla başlık ve içeriklerini ekrana yazdırır. Ayrıca, her içeriğin oluşturulma tarihini de gösterir.
Sonuç
Bu basit örnek ile PHP ve MySQL kullanarak içerik ekleyebileceğiniz, listeleyebileceğiniz ve veritabanına bağlanabileceğiniz bir CMS paneli oluşturabilirsiniz. Bu yapıyı daha da geliştirebilir, admin paneli ekleyebilir, içerik düzenleme ve silme gibi özellikler ekleyebilirsiniz. CMS sisteminizi geliştirerek profesyonel projelere dönüştürebilirsiniz.