PHP

PHP ile önceki(previous) ve sonraki(next) makale nasıl yapılır?

PHP ile önceki(previous) ve sonraki(next) makale nasıl yapılır?

Merhaba arkadaşlar bu yazımızda PHP PDO yapısında ve MySQL veritabanında önceki(previous) ve sonraki(next) makale(Blog) nasıl yapılır bunu göstereceğim. keyifli okumalar.

PHP PDO veritabanı bağlantısı

#bağlatı 
$servername='localhost';
$username='root';
$password='';
$dbname='prev_nex_post'; #veritabanı ismi

try{
    $conn= new PDO("mysql:=$servername; dbname=$dbname;", $username, $password);
    $conn->exec("SET CHARACTER SET utf8");
    $conn->query("SET NAMES 'utf8'");
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
    echo "Bağlantı hatası: ".$e->getMessage()."<br>";
}
previous post and next post
<?php
#veri tabanını dahil diyoruz.
include ("veritabani.php");
?>

Veriler çekme

Veritabanından ID numarası çağrılan blog’un detaylarını getirelim.

$blog_id=intval($_GET["blog-id"]); //blog detay sayfası için id belirliyoruz

$SinglePost=$conn->prepare("SELECT * FROM blogs WHERE blog_id=:id AND blog_status=:durum");
$SinglePost->execute(array(
    'id' => $blog_id,
    'durum' => 1
));

$SinglePostGet=$SinglePost->fetch(PDO::FETCH_ASSOC);

/* veritabanından böyle bir verinin varlığını kontrol ediyoruz. */
if($SinglePost->rowCount() == 0   ){
    echo "hata";
    exit;
}

echo "<h2>".$SinglePostGet['blog_name']."</h2>";
echo "<p>".$SinglePostGet['blog_content']."</p>";
echo "<hr>";

Veri tabanından getirilen ID’si 5 olan bloğun önceki ve sonraki makaleleri

$blog_id_get= $b_query_get['blog_id']; #şuan içinde bulunduğumuz blog_id numarası bir değişkene atıyoruz.

Önceki(previous) makale

Veri tabanında sonraki ve önceki satıra gitmek için aşağıda 2 farklı fonksiyon yazarak bu işlemi tamamlayacağız.

function nextPost($GetVal){
    global $conn;
    global $blog_id_get;
    $blogNextPost = $conn->prepare("SELECT * FROM blogs WHERE   blog_id = (SELECT MIN(blog_id) FROM blogs WHERE blog_id > :pre_nex_id AND blog_status=:pre_nex_status) ");
    $blogNextPost->execute(array(
        'pre_nex_id' => $blog_id_get,
        'pre_nex_status' => 1
    ));

    
    if($blogNextPost->rowCount() == 1 ){
        $next_post = $blogNextPost->fetch(PDO::FETCH_ASSOC);
        return $next_post[$GetVal];
    }

}

Sonraki(next) makale

function prevPost($GetVal){
    global $conn;
    global $blog_id_get;
    $blogPrevPost = $conn->prepare("SELECT * FROM blogs WHERE   blog_id = (SELECT MAX(blog_id) FROM blogs WHERE blog_id < :pre_nex_id AND blog_status=:pre_nex_status) ");
    $blogPrevPost->execute(array(
        'pre_nex_id' => $blog_id_get,
        'pre_nex_status' => 1
    ));

    if($blogPrevPost->rowCount() == 1 ){
        $prev_post = $blogPrevPost->fetch(PDO::FETCH_ASSOC);
        return $prev_post[$GetVal];
    }

}

Çıktı

#önceki  makale
echo '<a href="?blog-id='.prevPost('blog_id').'" style="float:left">'.prevPost('blog_name').'</a>';

#sonraki makale
echo '<a href="?blog-id='.nextPost('blog_id').'" style="float:right">'.nextPost('blog_name').'</a>';
next post and previous post with php

Sevgili Okuyucularımız, Sizlere bilgi, eğlence ve ilham dolu içerikler sunabildiysek ne mutlu bize. Eğer yazımızda herhangi bir düzeltme veya öneri sunmak isterseniz, lütfen yorum yapmaktan çekinmeyin. Sizden gelen geri bildirimler, içeriklerimizi daha da geliştirmemiz için bize büyük bir yardımcı olacaktır. Teşekkür ederiz!
Unutmayın! Paylaşmak; kazanmanın en hızlı ve kolay yoludur. Bir sonraki makalede görüşmek dileğiyle esen kalın.

İçeriğimi beğendin mi? Bana destek olup bir kahve ısmarlayabilirsiniz. Çok teşekkür ederim!

Bu makale yardımcı oldu mu?
EvetHayır

Paylaş

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir