Php 8 Uygulama: Dinamik Kategoriler

Php 8 Uygulama: Dinamik Kategoriler

PHP 8 Uygulama: Dinamik Kategoriler başlığı altında, dinamik kategoriler oluşturma ve bunları veritabanı ya da statik veri ile gösterme örneğini inceleyeceğiz. Dinamik kategoriler genellikle bir e-ticaret sitesi, blog veya içerik yönetim sistemi gibi uygulamalarda kullanılır. Kategoriler, kullanıcıların belirli türde içerikleri veya ürünleri filtrelemesine olanak tanır.

1. Statik Veri ile Dinamik Kategori Uygulaması

Başlangıç olarak statik veri kullanarak kategorileri gösterebiliriz. Daha sonra bu kategorileri dinamik hale getirmek için bir veritabanı kullanabiliriz.

Örnek: Statik Kategori Dizisi ile Kategori Listeleme

$kategoriler = [ "Teknoloji", "Sağlık", "Spor", "Eğitim", "Moda" ]; echo "<ul>"; foreach ($kategoriler as $kategori) { echo "<li>$kategori</li>"; } echo "</ul>";
  • Bu örnekte, kategoriler dizisi kullanılarak foreach döngüsü ile her kategori liste olarak yazdırılır.
  • Çıktı:
    - Teknoloji - Sağlık - Spor - Eğitim - Moda

Bu örnek temel bir statik kategori yapısını göstermektedir. Ancak uygulamalarda veriler genellikle bir veritabanından alınır ve kategoriler dinamik olarak oluşturulur.

2. Veritabanı ile Dinamik Kategori Uygulaması

Gerçek dünyada kategoriler genellikle bir veritabanında tutulur. Aşağıda, bir veritabanından kategorilerin nasıl çekileceğini ve dinamik olarak nasıl listeleneceğini göstereceğiz.

Adımlar:

  1. Kategoriler için bir veritabanı tablosu oluşturun.
  2. PHP ile veritabanına bağlanın.
  3. Veritabanından kategorileri çekin ve dinamik olarak listeleyin.

Veritabanı Tablomuzu Oluşturalım (MySQL)

CREATE TABLE kategoriler ( id INT AUTO_INCREMENT PRIMARY KEY, isim VARCHAR(255) NOT NULL );

Bu tablo, her kategori için bir id ve isim içerecek. id her kategoriye benzersiz bir kimlik verirken, isim kategori adını saklayacak.

PHP ile Veritabanına Bağlanma ve Kategorileri Çekme

PHP'de MySQL veritabanına bağlanmak için PDO veya MySQLi kullanılabilir. PDO daha esnek olduğu için burada onu kullanacağız.

// Veritabanı bağlantı ayarları $host = 'localhost'; $dbname = 'veritabani_adi'; $user = 'kullanici_adi'; $pass = 'parola'; try { // PDO ile veritabanına bağlanma $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Kategorileri çekmek için sorgu $stmt = $pdo->query("SELECT * FROM kategoriler"); // Kategorileri listele echo "<ul>"; while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo "<li>" . htmlspecialchars($row['isim']) . "</li>"; } echo "</ul>"; } catch (PDOException $e) { // Hata mesajı echo "Bağlantı hatası: " . $e->getMessage(); }
  • PDO: PHP Data Objects (PDO), PHP'de bir veritabanı bağdaştırıcısıdır. PDO::FETCH_ASSOC, veritabanından çekilen verileri bir dizi olarak döndürür.
  • htmlspecialchars : XSS saldırılarına karşı çıktıları güvenli hale getirir.

Örnek Çıktı (Veritabanından Gelen Veriler)

- Teknoloji - Sağlık - Spor - Eğitim - Moda

3. Dinamik Kategoriler ile Ürün Listeleme

Kategoriler genellikle ürünler ya da içerikler ile ilişkilendirilir. Bir kategoriye tıklanınca, o kategoriye ait içerikler listelenir. Bunu yapabilmek için ürünler veya içeriklerin de veritabanında kategorilere bağlanması gerekir.

Veritabanı Tablosu: Ürünler

CREATE TABLE urunler ( id INT AUTO_INCREMENT PRIMARY KEY, isim VARCHAR(255) NOT NULL, kategori_id INT, FOREIGN KEY (kategori_id) REFERENCES kategoriler(id) );

Burada, her ürün bir kategoriye ait olacak ve kategori_id ile bu ilişkiyi kuracağız.

PHP ile Dinamik Kategoriye Göre Ürün Listeleme

// Kategori id'si $kategori_id = isset($_GET['kategori_id']) ? (int)$_GET['kategori_id'] : 0; // Kategori id'sine göre ürünleri çek $stmt = $pdo->prepare("SELECT * FROM urunler WHERE kategori_id = :kategori_id"); $stmt->execute(['kategori_id' => $kategori_id]); // Ürünleri listele echo "<ul>"; while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo "<li>" . htmlspecialchars($row['isim']) . "</li>"; } echo "</ul>";
  • Kategoriye Göre Ürün Getirme: Kullanıcı belirli bir kategori seçtiğinde, $_GET['kategori_id'] ile o kategoriye ait ürünleri çekeriz.
  • Hazırlanmış Sorgular: PDO'nun prepare() fonksiyonu, SQL enjeksiyonuna karşı güvenliği artırır.

4. Dinamik Kategoriler ile Ürün Filtresi (Tam Uygulama)

// Kategorileri listele $stmt = $pdo->query("SELECT * FROM kategoriler"); echo "<ul>"; while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $kategori_id = $row['id']; $kategori_adi = htmlspecialchars($row['isim']); echo "<li><a target="_blank" href='?kategori_id=$kategori_id'>$kategori_adi</a></li>"; } echo "</ul>"; // Kategori id'si varsa ona göre ürünleri listele if (isset($_GET['kategori_id'])) { $kategori_id = (int)$_GET['kategori_id']; $stmt = $pdo->prepare("SELECT * FROM urunler WHERE kategori_id = :kategori_id"); $stmt->execute(['kategori_id' => $kategori_id]); echo "<h2>Seçilen Kategorideki Ürünler:</h2>"; echo "<ul>"; while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo "<li>" . htmlspecialchars($row['isim']) . "</li>"; } echo "</ul>"; }
  • Kategoriler liste olarak dinamik bir şekilde görüntülenir.
  • Her kategoriye tıklandığında, o kategoriye ait ürünler dinamik olarak gösterilir.

Sonuç

PHP 8 ile dinamik kategoriler uygulaması, veritabanı ile etkileşimi kolaylaştıran PDO gibi araçlarla oldukça basit bir şekilde yapılabilir. Bu uygulama, e-ticaret siteleri, bloglar ve içerik yönetim sistemlerinde kullanıcılara dinamik olarak içerikleri sunmanın temelini oluşturur.



Yorum Ekle

Üzerine gel