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

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!