PHP MySQL ile ileri geri butonu yapımı

makale.baslik

PHP MySQL ile İleri Geri Butonu Yapımı

Bu makale ile PHP ve MySQL ile ileri geri butonları ile id ler arası geçiş yapıp bir sonraki ve önceki içeriği web sayfanızda nasıl göstereceğinizi öğreneceksiniz.

Benim kendi sitemde de kullandığım bir yapıdan bahsedeceğim. Veri tabanında sonraki ve önceki satıra gitmek için kullanacağınız bir uygulama olacak. Bu sayede bende makalede kullandığım yapıyı sizde istediğiniz benzer uygulamalarda kullanabilirsiniz. Böylelikle veri tabanındaki id ler arasında ileri ve geri yapabileceksiniz. 

Burada önemli püf nokta id değerleri birincil anahtar oluyor ve eğer aradan bir kayıt silinirse o kayıt bir daha oluşturulmuyor. Veya gösterilmeyecek kayıtlar varsa şarta göre bir sonraki kayıt gösterilmesi gerekiyorsa bu uygulama ile çözebilirsiniz. 

Veri tabanı select sorgusunda limit kullanımı ile bu işi kolaylıkla yapabiliyoruz. 

Öncelikle php sirali_id_db veri tabanında makale adlı tablomuzu aşağıdaki alanlara göre oluşturalım.

sıralı id db

 

 

Daha sonra veri çekip içeriği gösterdiğimiz index.php sayfasını oluşturalım. Açıklama satırlarında kodların kullanımını açıkladım.

<!doctype html>
<html lang="tr">
<head>
    <meta charset="UTF-8">

    <title>Makale</title>
    <link rel="stylesheet" href="css/bootstrap.min.css">
</head>
<body>
<?php

@$baglanti = new mysqli('localhost', 'root', '', 'sirali_id_db');
// Veritabanı bağlantımızı yapıyoruz.
if (mysqli_connect_error()) {
    echo mysqli_connect_error();
    exit;
    //eğer bağlantıda hata varsa PHP çalışmasını sonlandırıyoruz.
}

$baglanti->set_charset("utf8");
// Türkçe karakter sorunu olmaması için utf8'e çeviriyoruz.


//Veri tabanından ilk ve son butonlar için tablodaki id değerlerini çekiyoruz.
$sorguIlk = $baglanti->query("select id from makale order by id asc limit 1");
//ilk id değeri için tabloyu id ye göre listeleyip ilk kaydı alıyoruz
$sonucIlk = $sorguIlk->fetch_assoc();
$ilkId = $sonucIlk["id"];

$sorguSon = $baglanti->query("select id from makale order by id desc limit 1");
//son id değeri için tabloyu id ye göre ters listeleyip ilk kaydı alıyoruz
$sonucSon = $sorguSon->fetch_assoc();
$sonId = $sonucSon["id"];


if ($_GET) {
    //Linklerden gelen get değerlerini alıp sorgumuzda kullanıyoruz.
    $id = $_GET["id"];
    $yon = $_GET["yon"];


    //yön önemli ona göre sorgumuz değişeceği için bir if yapısında kullanıyoruz.
    if ($yon == "ileri") {
        $sorgu = $baglanti->query("SELECT * FROM makale where id > $id limit 1"); // Makale tablosundaki veri çekiyoruz.
    }
    if ($yon == "geri") {
        $sorgu = $baglanti->query("SELECT * FROM makale where id < $id ORDER  by id desc limit 1"); // Makale tablosundaki veri çekiyoruz.
    }


} else {
    //eğer sayfa ilk defa açılmışsa ilk değeri alıyoruz.
    $sorgu = $baglanti->query("SELECT * FROM makale limit 1");

}

//sonuçları çekiyoruz.
$sonuc = $sorgu->fetch_assoc();


?>
<div class="container">
    <div class="col-md-8">

        <h1>
            <?php echo $sonuc["baslik"]; ?>
            <!--Başlık alanını yazdırdık-->
        </h1>
        <?php echo $sonuc["icerik"]; ?>
        <!--İçerik alanını yazdırdık-->
        <br>
        <br>

        <!-- Burada butonlarımızı koyuyoruz.
          Eğer ilk değer çağrılmışsa İlk ve Geri butonlarını pasif yapıyoruz
          -->
        <?php if ($sonuc["id"] == $ilkId) $ilkDurum = "disabled"; ?>
        <a class="btn btn-primary <?php echo @$ilkDurum ?>" href="index.php?yon=geri&id=<?php echo $ilkId + 1; ?>"><<
            İlk</a>

        <a class="btn btn-primary <?php echo @$ilkDurum ?>" href="index.php?yon=geri&id=<?php echo $sonuc["id"]; ?>"><
            Geri</a>

        <!--  Eğer son değer çağrılmışsa İleri ve Son butonlarını pasif yapıyoruz         -->

        <?php if ($sonuc["id"] == $sonId) $sonDurum = "disabled"; ?>
        <a class="btn btn-primary <?php echo @$sonDurum ?>" href="index.php?yon=ileri&id=<?php echo $sonuc["id"]; ?>">
            İleri ></a>
        <a class="btn btn-primary <?php echo @$sonDurum ?>" href="index.php?yon=ileri&id=<?php echo $sonId - 1; ?>">Son
            >>
        </a>


    </div>
</div>
</body>
</html>

Sizde aynı mantık ile ileri ve geri butonları hazırlayabilirsiniz.

Uygulama dosyaları ve veri tabanı dosyasını indirmek için: sirali_id.zip

Paylaş:

Yorumlar

    Bu yazı için hiç yorum yok. İlk yorumu yapmak ister misiniz?