lostyazilim
tr.link

Php'de Site İçi Arama'da Listeleme Sayısına Göre Sayfalama Görüntülenmesi

4 Mesajlar 756 Okunma
acebozum
tr.link

yazilimyolcusu yazilimyolcusu WM Aracı Kullanıcı
  • Üyelik 01.11.2021
  • Yaş/Cinsiyet 40 / E
  • Meslek Çalışmıyorum
  • Konum Konya
  • Ad Soyad M** Y**
  • Mesajlar 85
  • Beğeniler 0 / 1
  • Ticaret 0, (%0)

Merhabalar. Php'de listeleme yapıyorum. "index.php" sayfasındayken site içi arama yapıyorum. Arama sonrası eğer listeleme 5'ten büyük çıkarsa 2. sayfayı göstersin, eğer 5'ten küçükse göstermesini istemiyorum. Bakın 2. sayfa çıkıyor ama boş. Yani listelemeye göre ayarlama istiyorum. Ne yapmamı önerirsiniz?

Kodlar daha uzun ama ben kısaca koydum.

<?php
if($_POST) {

    $Sayfa = @intval($_GET['sayfa']); if(!$Sayfa) $Sayfa = 1;
    $Say = $db->query("SELECT yaziekle_resim, yaziekle_baslik, yaziekle_konu, 
    yaziekle_kategori FROM yaziekle ORDER BY yaziekle_id DESC");
    $ToplamVeri = $Say->num_rows;
    $Limit = 5;
    $Sayfa_Sayisi = ceil($ToplamVeri/$Limit); if($Sayfa > $Sayfa_Sayisi){$Sayfa = 1;}
    $Goster = $Sayfa * $Limit - $Limit;
    $GorunenSayfa = 2;


        $ara = $_POST['kelime'];
        $aramasorgusu = "SELECT yaziekle_id, yaziekle_resim, yaziekle_baslik, yaziekle_konu, 
        yaziekle_kategori FROM yaziekle WHERE yaziekle_baslik like '%$ara%' ORDER BY yaziekle_id DESC LIMIT $Goster, $Limit";
        $aramasorgu   = $db->query($aramasorgusu);
        $aramasay = $aramasorgu->num_rows;
        if($aramasay > 0) {
            foreach($aramasorgu as $arama) { 
?>

                <div class=icerikalani-div>
                    <div class="icerik-ic-alani">
                        <div class="resim-div">
                            <img src="images/eklenenyaziresimleri/<?php echo $arama['yaziekle_resim']; ?>">
                        </div>
                    </div>
                </div>
                        
    <div style="text-align:center; margin-top:10px; margin-bottom:10px;">
            <?php if ($Sayfa > 1) { ?>
            <span class="say_sabit"><a style="font-size:17px;" href="arama.php?sayfa=1">İlk</a></span>
            <div class="say_sabit"><a style="font-size:17px;" href="arama.php?sayfa=<?=$Sayfa - 1?>">Önceki</a></div>
            <?php } ?>
            <?php
            for($i = $Sayfa - $GorunenSayfa; $i < $Sayfa + $GorunenSayfa +1; $i++){ if($i > 0 and $i <= $Sayfa_Sayisi){
            if($i == $Sayfa){
            echo '<span style="font-size:17px; margin-right:8px; padding-left:8px;" class="say_aktif">'.$i.'</span>';
            }else{
            echo '<a style="font-size:17px; margin-right:8px; padding-left:8px;" class="say_a" href="arama.php?sayfa='.$i.'">'.$i.'</a>';
            }
            }
            }
            ?>
            <?php if ($Sayfa != $Sayfa_Sayisi) { ?>
            <div class="say_sabit"><a style="font-size:17px;" href="arama.php?sayfa=<?=$Sayfa + 1?>">Sonraki</a></div>
            <div class="say_sabit"><a style="font-size:17px;" href="arama.php?sayfa=<?=$Sayfa_Sayisi?>">Son</a></div>
            <?php } ?>
        </div>
 

 

elektronikssl
reklam

yazilimyolcusu yazilimyolcusu WM Aracı Kullanıcı
  • Üyelik 01.11.2021
  • Yaş/Cinsiyet 40 / E
  • Meslek Çalışmıyorum
  • Konum Konya
  • Ad Soyad M** Y**
  • Mesajlar 85
  • Beğeniler 0 / 1
  • Ticaret 0, (%0)

Kodları şu şekilde düzenledim. Ama şöyle bir hata alıyorum. Kodlar aşağıdaki gibi.

Hata:

PHP Fatal error:  Uncaught Error: Call to a member function fetch_array() on string in

index.php

<div class="arama-alani-div">
    <form action="arama.php" method="POST">
    <input type="text" name="kelime" placeholder="Arama yap">
    <input type="submit">
    </form>
</div>

arama.php

<?php 
if($_POST) { 
$ara = $_POST['kelime'];
$sayfalamasorgusu = "SELECT yaziekle_id, yaziekle_resim, yaziekle_baslik, 
yaziekle_konu, yaziekle_kategori FROM yaziekle WHERE yaziekle_baslik like '%$ara%'";
/* $sayfalamasorgu = $db->query($sayfalamasorgusu); */
?>

<?php
$sayfa = @$_GET['sayfa'];
if((empty($sayfa)) or (!is_numeric($sayfa))) {
$sayfa = 1;
}
$kacar = 3;
$sayfalamasorgusu = "SELECT yaziekle_id, yaziekle_resim, yaziekle_baslik, 
yaziekle_konu, yaziekle_kategori FROM yaziekle";
$sayfalamasorgu = $db->query($sayfalamasorgusu);
$sayfalamasorgusay = $sayfalamasorgu->num_rows;
$sayfasayisi = ceil($sayfalamasorgusay/$kacar);
$neredenbaslasin = ($sayfa*$kacar)-$kacar;
$bulsorgusu = "SELECT * FROM $sayfalamasorgusu ORDER BY yaziekle_baslik DESC LIMIT $neredenbaslasin, $kacar";
/* $bulsorgu = $db->query($bulsorgusu); */
$row = $bulsorgusu -> fetch_array(MYSQLI_ASSOC);
foreach($row as $bul) { 
?>

<div class=icerikalani-div>
        <div class="icerik-ic-alani">
            <div class="resim-div">
                <img src="images/eklenenyaziresimleri/<?php echo $bul['yaziekle_resim']; ?>">
            </div>

            <div class="baslik-ve-yazi-alani-kategori-ve-devaminioku">
                <div class="yazi-alani-baslik">
                    <?php echo $bul['yaziekle_baslik']; ?>
                </div>

                <div class="yazi-alani-yazi">
                    <?php echo nl2br($bul['yaziekle_konu']); ?>
                </div>

                <div class="kategori-ve-devaminioku-alani">
                    <div class="yazi-alani-kategori">
                        <?php echo $bul['yaziekle_kategori']; ?>
                    </div>

                    <div class="yazi-alani-devaminioku">
                        <a href="devaminioku.php?devam=<?php echo $bul['yaziekle_id']; ?>">Devamını Oku</a>
                    </div>
                </div>
            </div>
        </div>
    </div>


<?php }  ?>


<?php
    for($i=1; $i<=$sayfasayisi; $i++) {
        echo "<a href='arama.php?sayfa={$i}'>{$i}</a>";
    }
?>

<?php } ?>
 

 

yazilimyolcusu yazilimyolcusu WM Aracı Kullanıcı
  • Üyelik 01.11.2021
  • Yaş/Cinsiyet 40 / E
  • Meslek Çalışmıyorum
  • Konum Konya
  • Ad Soyad M** Y**
  • Mesajlar 85
  • Beğeniler 0 / 1
  • Ticaret 0, (%0)

Arkadaşlar kodları şu şekilde güncelledim. Bu durumdayken hata vermiyor ama "$kacar" değişkeninde "3" yazdığı için üç adet çekiyor. Halbuki ben, tek olan bir başlık aratıyorum. Kodlar aşağıda. Yardımcı olabilirseniz sevinirim.

<?php 
if($_POST) {
    $ara = $_POST['kelime'];
    $sayfalamasorgusu = "SELECT * FROM yaziekle WHERE yaziekle_baslik like '%$ara%'";
    $sayfalamasorgu = $db->query($sayfalamasorgusu);
    $sayfalamasorgusay = $sayfalamasorgu->num_rows;
?>

<?php
    $sayfa = @$_GET['sayfa'];
    if((empty($sayfa)) or (!is_numeric($sayfa))) {
        $sayfa = 1;
    }
    $kacar = 3;
    $sayfasayisi = ceil($sayfalamasorgusay/$kacar);
    $neredenbaslasin = ($sayfa*$kacar)-$kacar;

    $bulsorgusu = "SELECT * FROM yaziekle ORDER BY yaziekle_id DESC LIMIT $neredenbaslasin, $kacar";
    $bulsorgu = $db->query($bulsorgusu);

    foreach($bulsorgu as $bul) { ?>

    <div class=icerikalani-div>
        <div class="icerik-ic-alani">
            <div class="resim-div">
                <img src="images/eklenenyaziresimleri/<?php echo $bul['yaziekle_resim']; ?>">
            </div>

            <div class="baslik-ve-yazi-alani-kategori-ve-devaminioku">
                <div class="yazi-alani-baslik">
                    <?php echo $bul['yaziekle_baslik']; ?>
                </div>

                <div class="yazi-alani-yazi">
                    <?php echo nl2br($bul['yaziekle_konu']); ?>
                </div>

                <div class="kategori-ve-devaminioku-alani">
                    <div class="yazi-alani-kategori">
                        <?php echo $bul['yaziekle_kategori']; ?>
                    </div>

                    <div class="yazi-alani-devaminioku">
                        <a href="devaminioku.php?devam=<?php echo $bul['yaziekle_id']; ?>">Devamını Oku</a>
                    </div>
                </div>
            </div>
        </div>
    </div>

<?php } ?>

<?php
    for($i=1; $i<=$sayfasayisi; $i++) 
    {
        echo "<a href='arama.php?sayfa={$i}'>{$i}</a>";
    }
?>

<?php } ?>

Mesaj 3 defa düzenlendi. Son düzenleyen: yazilimyolcusu (17.02.2022 14:10)

 

 

yazilimyolcusu yazilimyolcusu WM Aracı Kullanıcı
  • Üyelik 01.11.2021
  • Yaş/Cinsiyet 40 / E
  • Meslek Çalışmıyorum
  • Konum Konya
  • Ad Soyad M** Y**
  • Mesajlar 85
  • Beğeniler 0 / 1
  • Ticaret 0, (%0)

Kimse cevap yazmadı mı arkadaşlar.

 

 

wmaraci
wmaraci
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al