v2.5.2
Giriş yap

Php Sayfa İçi Arama Yapma Sorunu

yazilimyolcusu
526 defa görüntülendi

Merhabalar. Arkadaşlar site içi arama yapmak istiyorum ama beceremedim. Hata alıyorum. Kodlara bir bakabilir misiniz? Bu arada kod kalabalığı olmasın diye sadece "başlık" kısmını listelettim burada.
Hata şu:

PHP Warning:  Invalid argument supplied for foreach() in

html sayfası

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

islem sayfası

<?php
    if($_POST) {
        $ara = $_POST['kelime'];
        $aramasorgusu = "SELECT yaziekle_resim, yaziekle_baslik, yaziekle_konu, 
        yaziekle_kategori FROM yaziekle WHERE yaziekle_baslik like '%$ara%' ORDER BY yaziekle_id DESC";
        $aramasorgu   = $db->query($aramasorgusu);
        $aramasay = $aramasorgu->num_rows;
        if($aramasay > 0) {
                foreach($aramasay 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 class="baslik-ve-yazi-alani-kategori-ve-devaminioku">
                        <div class="yazi-alani-baslik">
                            <?php echo $arama['yaziekle_baslik']; ?>
                        </div>

<?php } } } ?>
Cevap yaz
Cevaplar (5)
rephp7
1043 gün önce

foreach($aramasay as $arama)
yerine
foreach($aramasorgu as $arama) yazıp dener misin?

rephp7
1043 gün önce

bak hatta

$aramasay = $aramasorgu->num_rows; 
if($aramasay > 0) {

yerine

if($aramasorgu!=false) {

desende çalışması lazım. buna birde else ekleyip "aranan kelimeye ait içerik bulunamadı " yazdırırsan daha güzel olur.

rephp7
1043 gün önce

sen zaten $aramasay ın satır numarasının sıfırdan büyük olmasını if ($aramasay >0) diyerek denetledin. senin asıl sorgun $aramasorgu.

yazilimyolcusu
1043 gün önce

Çalıştı. Peki bir şey sorayım. "query" nin değişkenini "foreach" içinde kullanıp veriyi yazdırmayı anladım, biliyorum ama "$aramasay" değişkenine "query" nin değişkenini veritabanında veri olup olmadığını kontrol etmek için aktarmış olmama rağmen, neden "foreach" içinde sorgu değişkenini yazdırdık? Yani aktarım yapmamış mı oluyoruz bu durumda?

yazilimyolcusu
1043 gün önce

Cevap veren yok mu arkadaşlar.