Php Dersleri

Php ile Önceki ve Sonraki Konu Mantığı [NextPost]

php dersleri

Web sitelerinde kullanıcıların dikkatini çekerek diğer konulara yönlendirmek ve o kişiyi sitede daha uzun tutmak seo açısından çok önemlidir. Hem sitenin kalitesini arttıracak hemden gelen kullanıcıları site fazla tutmanızı sağlayacaktır. Kullanıcıları sitenizde tutup belli bir kitleye sahip olmak içinde belli başlı eklentileri siteye entegre etmek en mantıklısı olacaktır. Bu dersimizde de kullanıcıları sitemizde tutacak, başka konuları ziyaret etmesini sağlayacağımız bir modül gerçekleştireceğiz. Hazırlayacağımız bu modül, bulundukları konudan önceki ve sonraki konuları da göstermek olacak.

Hazırlayacağımız modülün mantığı da şu şekilde; her konu bir id değerine sahip olduğu için bu değer üzerinden işlemlerimizi yapacağız. Akla gelen ilk yöntem, öncesi için (id – 1) sonrası için (id +1) gelecektir. Fakat silinen bir konu bu yöntemin sağlıklı çalışmamasına neden olacaktır. Bu yüzden öncesi için (id < bulunan id), sonrası için de ( id > bulunan id ) olacaktır. Aralarda sininen veri bu sorgudan etkilenmeyecek ve sorgu sağlıklı bir şekilde çalışacaktır. Tabi bu şekilde şartı belirttiğimizde bir şart daha eklememiz gerekecek. Buda Limit değeri olacak. Limit 1 diyerek sadece bu sorguya ait 1 değeri almasını sağlayacağız.

Yukarıdaki mantık doğrultusunda sorgu şu şekilde olacak;

$oncekiKonu  = $db->query("SELECT * FROM TABLOADI WHERE id < "'.$id.'" ORDER BY id DESC LIMIT 1")->fetch(PDO::FETCH_ASSOC);
$sonrakiKonu = $db->query("SELECT * FROM TABLOADI WHERE id > "'.$id.'" ORDER BY id ASC LIMIT 1")->fetch(PDO::FETCH_ASSOC);

Yukarıdaki gibi sorguyu hazırladığımızda önceki ve sonraki konuları alabiliriz. Tabi burada bir eksik daha var. Bulunulan konu en son yada en güncel değer olabilir. Bu durumda da öncesi ve sonrasında veri olmadığı için hata verecektir. Bu durumda da sorguyu biraz değiştirmek ve ekstra bir sorgu eklemek yeterli olacaktır.

$oncekiKonu     = $db->query("SELECT * FROM TABLOADI WHERE id < "'.$id.'" ORDER BY id DESC LIMIT 1"); $sonrakiKonu = $db->query("SELECT * FROM TABLOADI WHERE id > "'.$id.'" ORDER BY id ASC LIMIT 1");
$oncekiKonuYaz  = $oncekiKonu->fetch(PDO::FETCH_ASSOC);
$sonrakiKonuYaz = $sonrakiKonu->fetch(PDO::FETCH_ASSOC);

if($oncekiKonu->rowCount() > 0 ){
    // Konuyu yazdır.
}

if($sonrakiKonu->rowCount() > 0 ){
    // Konuyu yazdır.
}

Yukarıdaki gibi konunun var olup olmadığına baktıktan sonra ekrana yazdırma işlemleriyle sitemize önceki ve sonraki modülünü hazırlamış oluyoruz.

Bir önceki yazım olan Php’de Fonksiyonlara Sınırsız Argüman Gönderme başlıklı makalemde fonksiyon, func_get_args ve func_num_args hakkında bilgiler vermekteyim.

İlgilizi Çekecek Konular

Php ile Seçili 2 Tarih Arasındaki Verileri Listeleme

ibrahim Çevrük

Php ile Yapılan Basit Botu Veritabanına Kayıt Etme

ibrahim Çevrük

Php’de For Döngüsü Kullanımı

ibrahim Çevrük

Yorum Giriniz