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>";
}

<?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>';

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