• 21-04-2024, 21:49:48
    #1
    Arkadaşlar merhaba. Bir sorunum var.
    aramasonuc.php sayfasında site içi arama motoru yapmaya çalışıyorum. Arama sonuçlarına sayfalama yapmaya çalışıyorum. Veri tabanında ilan numarası 2 olan 5 adet veri var. Diyelim ki 2'yi arattım. Her sayfada gösterilmesi gereken veri sayısı, yani limit 3 olsun. Gönderilen değer 5 ama limit 3 olduğu için, 3 adet listeleniyor, 2. sayfada sorgu iptal olmuş oluyor. Eğer anlaşılmadıysa farklı bir şekilde anlatayım. Yardımcı olabilirseniz sevinirim.
    <?php
    $Sayfa = @intval($_GET['sayfa']); if(!$Sayfa) $Sayfa = 1;
    $Say = "SELECT * FROM yorumlar ORDER BY yorumlar_id DESC";
    $verisay = mysqli_query($db, $Say);
    $ToplamVeri = mysqli_num_rows($verisay);
    $Limit = 2;
    $Sayfa_Sayisi = ceil($ToplamVeri/$Limit); if($Sayfa > $Sayfa_Sayisi){$Sayfa = 1;}
    $Goster = $Sayfa * $Limit - $Limit;
    $GorunenSayfa = 4;
    if(isset($_POST['gonder'])) {
        $aramacek = @$_POST['arama'];
        $yenieklenenleryorumaramalistele_sorgusu = "SELECT yorumlar_id, yorumlar_ilannumarasi,
        yorumlar_adsoyad, yorumlar_eposta, yorumlar_yorumalani, yorumlar_onay
        FROM yorumlar WHERE yorumlar_ilannumarasi LIKE '%$aramacek%' order by yorumlar_id DESC limit $Goster, $Limit";
        $yenieklenenleryorumaramalistele_sorgu = mysqli_query($db, $yenieklenenleryorumaramalistele_sorgusu);
        $aramasonucu = mysqli_num_rows($yenieklenenleryorumaramalistele_sorgu);
        if($aramasonucu > 0) {
    ?>
            <div class="x">
                <?php require("mobilemenu.php"); ?>
                <div class="sayfalama_ve_liste_margin">
                    <div class="marginayarla">
                        <div class="yorumlarlistele_aramayap_div">
                            <form action="" method="POST">
                                <input type="text" name="arama" placeholder="İlan Numarası Ara" pattern="\d*" required>
                                <input type="submit" name="gonder" value="Arama Yap">
                            </form>
                            <div class="yorumlarlistele_aramasil_div">
                                <form action="arama.php" method="POST">
                                    <input type="submit" name="aramayisil" value="Aramayı Sil">
                                </form>
                            </div>
                        </div>
                        
                        <div class="yorumlarlistele_yazisi_div">Yorum Listele</div>
                        <?php
                        foreach($yenieklenenleryorumaramalistele_sorgu as $yorumlarlistele_goster) {
                        ?>
                            <div class="yorumlarlistele_ilannumarasi">İlan Nu:</div>
                            <div class="yorumlarlistele_adsoyad">Ad-Soyad</div>
                            <div class="yorumlarlistele_eposta">E-Posta</div>
                            <div class="yorumlarlistele_onay">Onay</div>
                            <div class="yorumlarlistele_ilannumarasi_veri">
                                <?php echo nl2br(substr($yorumlarlistele_goster['yorumlar_ilannumarasi'],0,20)); ?>
                            </div>
                            <div class="yorumlarlistele_adsoyad_veri">
                                <?php echo nl2br(substr($yorumlarlistele_goster['yorumlar_adsoyad'],0,40)); ?>
                            </div>
                            <div class="yorumlarlistele_eposta_veri">
                                <?php echo nl2br(substr($yorumlarlistele_goster['yorumlar_eposta'],0,40)); ?>
                            </div>
                            <div class="yorumlarlistele_onay_veri">
                                <?php echo nl2br(substr($yorumlarlistele_goster['yorumlar_onay'],0,1)); ?>
                            </div>
                            <div class="yorumlarlistele_yorum">Yorum</div>
                            <div class="yorumlarlistele_duzenle_sil">Düzenle-Sil</div>                    
                            <div class="yorumlarlistele_yorum_veri">
                                <?php echo nl2br($yorumlarlistele_goster['yorumlar_yorumalani']); ?>
                            </div>
                            <div class="yorumlarlistele_duzenle_sil_alani_veri">
                                <a href="yenieklenenlerduzenle.php?yenieklenenlerduzenle=<?php
                                    echo base64_encode($yorumlarlistele_goster['yorumlar_id']);
                                    ?>"
                                >
                                    <img src="icons/edit.png" title="Düzenle" />
                                </a>
                                <a href="yenieklenenlersil.php?yenieklenenleridsil=<?php
                                    echo base64_encode($yorumlarlistele_goster['yorumlar_id']);
                                ?>">
                                    <img src="icons/delete.png" style="padding-left:25px;" title="Sil"/>
                                </a>
                            </div>
                        <?php } ?>
                    </div>
                        
                    <div class="sayfalama-div">
                        <?php if($Sayfa > 1) { ?>
                            <span class="say_sabit"><a style="font-size:17px; color:#fff; margin-right:8px;" href="arama.php?sayfa=1">İlk</a></span>
                            <span class="say_sabit"><a style="font-size:17px; color:#fff;" href="arama.php?sayfa=<?=$Sayfa - 1?>">Önceki</a></span>
                        <?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:0px 8px; background:red; color:#fff;" class="say_aktif">'.$i.'</span>';
                                } else {
                                    echo '<a style="font-size:17px;  padding:0px 8px; color:#fff; margin-right:8px;" class="say_a" href="arama.php?sayfa='.$i.'">'.$i.'</a>';
                                }
                            }
                        }
                        ?>
                        <?php if ($Sayfa != $Sayfa_Sayisi) { ?>
                            <span class="say_sabit"><a style="font-size:17px; color:#fff; margin-right:8px;" href="arama.php?sayfa=<?=$Sayfa + 1?>">Sonraki</a></span>
                            <span class="say_sabit"><a style="font-size:17px; color:#fff;" href="arama.php?sayfa=<?=$Sayfa_Sayisi?>">Son</a></span>
                        <?php } ?>
                    </div>
                </div>
            </div>
    <?php
        }
    }
    ?>
  • 22-04-2024, 00:59:13
    #2
    daha önce denemedim ama $_POST['arama'] ' yı session ile tutsanız ? kendi bilgisayarıma geçince deneyeceğim.
  • 22-04-2024, 14:51:08
    #3
    Session'ı burada nasıl tanımlarız acaba? Giriş işlemlerinde aşağıdaki şekilde kullanıyoruz ama burada nasıl yapılması gerekli bilemedim.
    $_SESSION["giris"] = $girisislemleri
  • 22-04-2024, 15:57:55
    #4
    Anlamadım söylediğini tam olarak. yani liste sayısı verdiğin limiti aşmışsa sayfalama görünmemeli doğrumu anladım ?
  • 22-04-2024, 16:35:35
    #5
    Aradığım veri veri tabanında 4 adet var sayfalama limiti 2 yani her sayfada 2 adet veri görünmesi lazım Ben bu veriyi arattığımda ilk sayfadaki verileri Yani ilk 2 veriyi listeliyor 3 ve 4. veri 2. sayfada arka arkaya olması gerekirken 3 veriyi başka bir ilan numarasına ait Yani ilk sayfada ilk 2 veri listelenirken 2. sayfada sorgu bozulmuş oluyor sorgu çalışmıyor anlaşılmadıysa tekrar anlatayım sormaktan çekinmeyin lütfen
  • 23-04-2024, 11:19:53
    #6
    Arkadaşlar sorum güncel. Yardımcı olmak isteyen arkadaşlar varsa, yardım edebilirler.
  • 01-05-2024, 17:35:48
    #7
    CodingStudent adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar sorum güncel. Yardımcı olmak isteyen arkadaşlar varsa, yardım edebilirler.
    Hocam genelde aramalar get ile yapılır ve sayfalama kısımlarında urllere yazılır.
    Siz Post ile yaptığınız için şöyle bir öneride bulunabilirim.

    if(isset($_POST['gonder'])) {
    {
    bunun yerine

    $aramacek = '';
    if(isset($_POST['gonder'])) {
    $aramacek = @$_POST['arama'];
    setcookie('arama', $aramacek, , time()+600, '/') //Aramayı aynı zamanda cookieye alın.
    }elseif(isset($_COOKIE['arama'])){
    $aramacek = @$_COOKIE ['arama'];
    }
    
    if($aramacek!="") {
        $yenieklenenleryorumaramalistele_sorgusu = "SELECT yorumlar_id, yorumlar_ilannumarasi,
        yorumlar_adsoyad, yorumlar_eposta, yorumlar_yorumalani, yorumlar_onay
        FROM yorumlar WHERE yorumlar_ilannumarasi LIKE '%$aramacek%' order by yorumlar_id DESC limit $Goster, $Limit";
        $yenieklenenleryorumaramalistele_sorgu = mysqli_query($db, $yenieklenenleryorumaramalistele_sorgusu);
        $aramasonucu = mysqli_num_rows($yenieklenenleryorumaramalistele_sorgu);
        if($aramasonucu > 0) 
    
    {
    burada şunu yapıyorsunuz.
    ilk aramada aranan kelimeyi çereze kaydediyorsunuz. sayfa gezerkense cookieden okuma yapıyorsunuz. çerez 10dakika tutuyor sonrasında siliyor.
  • 01-05-2024, 17:55:56
    #8
    Örnek Arama Yaptığın Kelime Araba.

    Şöyle yapmalısın

    arama.php?kelime=araba bunu get ile yaparsan sayfalama yaparkende

    arama.php?kelime=araba&Sayfa=2

    Bu şekilde işlersen sayfalamaya sorunun kalmayacaktır.
  • 05-05-2024, 19:51:03
    #9
    Get ile yapacak olursak nasıl yapılır acaba? Benim kodları kullanarak yazabilir misiniz?