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>";
prev next blog detail min

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

Arkadaşlar yazımızda hata veya önerileriniz olursa lütfen yorum yapmayı unutmayın.
Unutmayın! Paylaşmak; kazanmanın en hızlı ve kolay yoludur. Bir sonraki blog’ta görüşmek dileğiyle esen kalın.

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

Paylaş

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.