Arkadaşlar, arttığım kelime ile listeleme yaptım. Ve, mesela 3 adet sonuç çıktıysa ve sayfada 2 adet göster dediysem "1 2" diye sayılar çıkıyor ama bütün sonuçları 1. sayfada gösteriyor. 2. sayfa boş. Sorun çözülüyor gibi. Bir bakabilir misiniz?
<?php
if($_POST) {
$ara = $_POST['kelime'];
$sayfalamasorgusu = "SELECT * FROM yaziekle WHERE yaziekle_baslik like '%$ara%'";
$sayfalamasorgu = $db->query($sayfalamasorgusu);
$sayfasay = $sayfalamasorgu->num_rows;
if($sayfasay > 0) {
$sayfa = @$_GET['sayfa'];
if((empty($sayfa)) or (!is_numeric($sayfa))) { $sayfa = 1; }
$kacar = 2;
$sayfasayisi = ceil($sayfasay/$kacar);
$neredenbaslasin = ($sayfa*$kacar)-$kacar;
$sorgusu = "SELECT * FROM yaziekle ORDER BY yaziekle_id LIMIT $neredenbaslasin, $kacar";
$sorgu = $db->query($sorgusu);
foreach($sayfalamasorgu as $sorgu) {
?>
<div class=icerikalani-div>
<div class="icerik-ic-alani">
<div class="resim-div">
<img src="images/eklenenyaziresimleri/<?php echo $sorgu['yaziekle_resim']; ?>">
</div>
<div class="baslik-ve-yazi-alani-kategori-ve-devaminioku">
<div class="yazi-alani-baslik">
<?php echo $sorgu['yaziekle_baslik']; ?>
</div>
<div class="yazi-alani-yazi">
<?php echo nl2br($sorgu['yaziekle_konu']); ?>
</div>
<div class="kategori-ve-devaminioku-alani">
<div class="yazi-alani-kategori">
<?php echo $sorgu['yaziekle_kategori']; ?>
</div>
<div class="yazi-alani-devaminioku">
<a href="devaminioku.php?devam=<?php echo $sorgu['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 } else { echo "0"; } ?>
<?php } ?>
Dediğinizi yaptım ama aynı hatayı alıyorum. Bu arada mütevazı davranıyorsunuz. Bence iyisiniz.
Sorgunun adını değiştirdim ama yine aynı hatayı veriyor.
Şimdi ilk olarak "index.php" sayfasında veriler listeleniyor ve sayfalama yapıyorum. "index.php" sayfasındaki arama alanına aratacağım kelimeyi yazıp arattığımda "arama.php" sayfasına gidiyor. Bu sayfada da veriler filtrelenip listeleniyor ama sayfalama da kullanmak istiyorum. Aslında işleri kolaylaştırdım biraz galiba. Kodları şu şekilde değiştirdim tekrar. Zahmet olacak tekrar bakmanız mümkün mü? Çok bir değişiklik yok.
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_id DESC LIMIT $neredenbaslasin, $kacar";
$bulsorgu = $db->query($bulsorgusu);
foreach($bulsorgusu 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 } ?>
Hata:
PHP Warning: Invalid argument supplied for foreach() in
Arkadaşlar acaba elinde site içi arama yaptıktan sonra listeleme yapabilen bir kod var mı elinizde? Kendi uğraştığım yerde nerede hata yapıyorum anlarım. Veya aşağıdaki kodlar bana şu hatayı veriyor?
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 } ?>
Cevap veren yok mu arkadaşlar.
Kodlar uzun ama kısaca ne yapmak istediğimi anlatayım.
<?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 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>
Ç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?
Cevap veren yok mu arkadaşlar.
Aslında anlatmak istediğimi şu şekilde daha iyi izah edebilirim.
http://www.erbilen.net/
Yukarıdaki sayfada, sağ alanda kategoriler, bağlantılar gibi yerler var. Bu sağ alandaki kısmı grid sitemiyle veya flex ile yapabilir miyiz?
Yapabiliyorsak eğer, https://www.hizliresim.com/5sq1zcz buradaki gibi ben her yazı listelettiğimde sağ tarafta farklı bir şey çıkmasını istiyorum ve bu farklı resim veya linkleri neye göre listeletebilirim.
Yani diyelim ki id'si 1 olan yazıyı listelettim. Sağ kısmına da reklam koymak istiyorum. 2 id'li yazıyı listelettiğimde en çok okunan 5 yazıyı listeletmek istiyorum. 3 id'li yazıyı listelettiğimde linkler kısmını listeletmek istiyorum ama sırasıyla nasıl veya neye göre listeletebilirim, onu bilemedim.