Bir örnek koyabilir misin, zahmet olmazsa?
http://demoincele.com/demo/hd0270/admin/index.php?page=resimlistesi&menusec=re
Şimdi bu php yi öğrenme aşamasında olduğum için başka sitelerden bakarak ortaya karışık bir şeyler yapmaya çalışıyorum. Linkini koyduğum sitenin sahibi belki kızabilir diye linki koymamıştım. Ama aslında yapmak istediğim bu. Bir de ilk koymuş olduğum kodlarda sayfalama yapmak için 20 adet resim belirlemiştim her sayfa için. Ama resimlerin boyutu ve admin panelinin uzunluğu sebebiyle sonradan 3 olarak belirledim her başlık için. Yani örneğin, "Ankara", "İzmir", "İstanbul" listelenecek ve 2. sayfaya geçecek. Mysql sürümü ise şu: Sunucu sürümü: 10.4.17-MariaDB.
Şu hatayı veriyor: Fatal error: Uncaught Error: Call to a member function fetchAll() on bool in
Şu satırda:
$resimlerial = $say->fetchAll(PDO::FETCH_ASSOC);
Yani sorgudan hemen sonra gelen bu kodlarda hata veriyor. Kodları kendinize göre uyarlayın demiştiniz. Şu şekilde yaptım.
<?php
$sayfa = @intval($_GET["sayfa"]); if(!$sayfa) {$sayfa = 1;}
$say = $db->query("SELECT * FROM albumeresimekle");
$toplamveri = $say->rowCount(); // Verileri Saydırdık
$limit = 3; // Sayfada Gösterilecek Resim Sayısı
$sayfa_sayisi = ceil($toplamveri/$limit); if($sayfa > $sayfa_sayisi) { $sayfa = 1; }
$goster = $sayfa * $limit - $limit;
$gorunensayfa = 2;
$say = $db->query("SELECT ANY_VALUE('resimalbumu'.'resimalbumu_adi') AS 'resimalbumu_adi', GROUP_CONCAT('albumeresimekle'.'albumeresimekle_adi') AS 'resimler' FROM 'resimalbumu' INNER JOIN 'albumeresimekle' ON 'albumeresimekle'.'albumeresimekle_sirasi' = 'resimalbumu'.'resimalbumu_id' GROUP BY 'albumeresimekle'.'albumeresimekle_sirasi' ORDER BY 'albumeresimekle'.'albumeresimekle_sirasi' DESC LIMIT $goster, $limit");
$resimlerial = $say->fetchAll(PDO::FETCH_ASSOC);
foreach($resimlerial as $resim) {
?>
<div style="position:relative; top:0px; width:100%; height:223px; line-height:50px;
background:lightbrown; -webkit-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.35);
-moz-box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.35);
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.35);">
<div style="position:absolute; width:1250px; height:50px; background:#81a8f4; padding-left:10px; font-size:20px;
color:#fff;"><?php echo $resim['resimalbumu_adi']; ?></div>
<?php
$resimler = explode(',', $resim["resimler"]);
foreach($resimler as $img) {
?>
<div class="cokluresimlisteleresim" style="position:absolute; top:53px; margin-left:0px; font-size:20px; color:#fff;">
<img src="../../../upload/albumeresimekle/<?php echo $img; ?>"></div>
<?php echo $img; ?>
<?php } ?>
</div>
<?php } ?>
PHP Version 7.3.27
Dediğinizi yaptım. 3 tane "Antalya" başlıklı resim eklememe rağmen sadece "Antalya" başlığına ait 1. resmi çekiyor. Diğer ikisini ekranda göremiyorum. Kodları şu şekilde uyarladım, bilmiyorum doğru olmuş mu?
<?php
$sayfa = @intval($_GET["sayfa"]); if(!$sayfa) {$sayfa = 1;}
$say = $db->query("SELECT * FROM albumeresimekle");
$toplamveri = $say->rowCount(); // Verileri Saydırdık
$limit = 3; // Sayfada Gösterilecek Resim Sayısı
$sayfa_sayisi = ceil($toplamveri/$limit); if($sayfa > $sayfa_sayisi) { $sayfa = 1; }
$goster = $sayfa * $limit - $limit;
$gorunensayfa = 2;
$say = $db->query("SELECT `resimalbumu`.*, GROUP_CONCAT(`albumeresimekle`.`albumeresimekle_adi`) AS resimler FROM `resimalbumu` INNER JOIN `albumeresimekle` ON `albumeresimekle`.`albumeresimekle_sirasi` = `resimalbumu`.`resimalbumu_id` GROUP BY `albumeresimekle`.`albumeresimekle_sirasi` ORDER BY `albumeresimekle`.`albumeresimekle_sirasi` DESC LIMIT $goster, $limit");
$resimlerial = $say->fetchAll(PDO::FETCH_ASSOC);
foreach($resimlerial as $resim) {
?>
<div style="position:relative; top:0px; width:100%; height:223px; line-height:50px;
background:lightbrown; -webkit-box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.35);
-moz-box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.35);
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.35);">
<div style="position:absolute; width:1250px; height:50px; background:#81a8f4; padding-left:10px; font-size:20px;
color:#fff;"><?php echo $resim['resimalbumu_adi']; ?></div>
<?php
$resimler = explode(',', $resim["resimler"]);
foreach($resimler as $img) {
?>
<div class="cokluresimlisteleresim" style="position:absolute; top:53px; margin-left:0px; font-size:20px; color:#fff;">
<img src="../../../upload/albumeresimekle/<?php echo $img; ?>"></div>
<?php echo $img; ?>
<?php } ?>
</div>
<?php } ?>
Eklediğim resimlere bakabilirseniz.
https://hizliresim.com/u1LqTo
https://hizliresim.com/M2bDn4
Şu an tek bir hata görünüyor.
Notice: Undefined index: albumeresimekle_sirasi in C:\xampp\htdocs\site\admin\panel\production\tumresimlerilistele.php on line 32
Aşağıdaki satırda sıkıntı çıkıyor.
'''php
<div style='position:absolute; width:1250px; height:50px; background:#81a8f4; padding-left:10px; font-size:20px;
color:#fff;'><?php echo $resim['albumeresimekle_baslik']; ?></div>
'''
Aşağıdaki kodda tam olarak ne yaptık acaba? Bir de onu söyleyebilirseniz sevinirim.
'''php
$say = $db->query("SELECT resimalbumu.*, GROUP_CONCAT(albumeresimekle.albumeresimekle_adi) AS resimler FROM resimalbumu INNER JOIN albumeresimekle ON albumeresimekle.albumeresimekle_sirasi = resimalbumu.resimalbumu_id GROUP BY albumeresimekle.albumeresimekle_sirasi ORDER BY albumeresimekle.albumeresimekle_sirasi DESC LIMIT $goster, $limit");
'''
Tekrar merhaba. Arkadaşlar vermiş olduğunuz "SELECT" sorgusunu veritabanımın sql alanına yazıp kaydettim. Yalnız yine aynı sonucu verdi. Bir yerde hata yapıyorum galiba. Şimdi aslında kafama takılan iki konu var. Birincisi "sql" alanına sorguyu yazmadan evvel, kendi kurmuş olduğum tablo bağlantısını sildim. Sonra "sql" alanına "SELECT" sorgusunu yazdım. Sonrasında "benzersiz bir alanınız yok" benzeri bir uyarı verdi. Hata değil de "sql" alanının aşağısında uyarı şeklinde çıktı yazı.
İkincisi ise ben "resimalbumu_id" ile "albumeresimekle_sirasi" alanlarını bağlamıştım. Yani albümün "id" si diğer tablonun "sira numarasına" bağlıydı. Az önce tayfun bey'in "group by, group concat" ile ilgili bir videosuna denk geldim. Orada da "id" leri eşitlemiş. Başka videolarda da öyle. Acaba ben id'leri eşitlemediğim için mi yapamadım. Yanlış anlamıyorsam "sira numarası" aynı olsa da" id" değiştiği için devamlı yeni bir başlık açıyor. İzlediğim bir videoda böyle yapmam gerktiğini söylemişti. Aslında bu şekilde yani "id" ile "sıra numarasını" bağladığımda sıra numarasına göre resimleri kategorilendirebiliyorum. Yani albümü listelettiğim sayfada albüm başlıklarına tıkladığım vakit o albümün resimleri çıkıyordu ama ben bir sayfada göstermeye çalışıyorum. Bu durumda ne yapmam lazım.
Tabloyu nasıl yazacağımı bilemedim. Resmini atıyorum arkadaşlar.
https://hizliresim.com/W9hPcj
https://hizliresim.com/mxFhet
Bu tablodan bir şey anlamadım ben işin açıkçası.
<?php
$sayfa = @intval($_GET["sayfa"]); if(!$sayfa) {$sayfa = 1;}
$say = $db->query("SELECT * FROM albumeresimekle");
$toplamveri = $say->rowCount(); // Verileri Saydırdık
$limit = 3; // Sayfada Gösterilecek Resim Sayısı
$sayfa_sayisi = ceil($toplamveri/$limit); if($sayfa > $sayfa_sayisi) { $sayfa = 1; }
$goster = $sayfa * $limit - $limit;
$gorunensayfa = 2;
$say = $db->query("SELECT * FROM albumeresimekle ORDER BY albumeresimekle_sirasi DESC LIMIT $goster, $limit");
$resimlerial = $say->fetchAll(PDO::FETCH_ASSOC);
foreach($resimlerial as $resim) {
?>
<?php echo $resim['albumeresimekle_baslik']; ?></div>
<img src="../../../upload/albumeresimekle/<?php echo $resim["albumeresimekle_adi"]; ?>">
<?php echo $resim["albumeresimekle_baslik"]; ?></div>
<a href="../../../resim-galerisi.php<?php echo substr($resim['albumeresimekle_baslik'],0,44); ?>">
<?php echo substr($resim['albumeresimekle_baslik'],0,44); ?></a>
<?php } ?>