Tekrar merhaba arkadaşlar. Sizin düzenlemiş olduğunuz sorguyu ben tam anlayamadığımdan, sizin öneriniz ile sorguyu aşağıdaki gibi düzenledim. Şimdi albümlerin içindeki resimler yan yana çıkıyor. Ama kodları değiştirdiğimden sayfalamayı çalıştıramadım. En yukarıda sayfalama kodlarının başlangıcı var zaten. (----) bu çizgilerden sonra da sayfalamanın devamı var. Eğer karmaşık oldu derseniz daha sade bir şekilde yazmaya çalışayım. Şu anda sayfanın son hali resimdeki gibi.
https://hizliresim.com/7bxXPz
<?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 resimalbumu");
$resimlerial = $say->fetchAll(PDO::FETCH_ASSOC);
foreach($resimlerial as $res) {
?>
<div class="cokluresimlistelealani" style="width:1512px; float:left; top:0px; height:255px;
line-height:50px; -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 class="cokluresimlistelealanibaslik" style="margin-top:0px; width:1502px; height:50px; background:#81a8f4; padding-left:10px; font-size:20px;
color:#fff;"><?php echo $res['resimalbumu_adi']; ?></div>
<?php
$sorgu = $db->query("SELECT * FROM albumeresimekle");
$sorgual = $sorgu->fetchAll(PDO::FETCH_ASSOC);
foreach($sorgual as $sorgugoster) {
if($sorgugoster['albumeresimekle_sirasi']===$res['resimalbumu_id']) {
$sayi=$sorgu->rowCount();
if($sayi>1) {
?>
<div style="" class="cokluresimlisteleresim">
<img style="margin-top:1px;" src="../../../upload/albumeresimekle/<?php echo $sorgugoster["albumeresimekle_adi"]; ?>">
</div>
<?php } else { ?>
</div>
<?php } } } } ?>
---------------------------------------
<div style="clear: both;"> <!-- Sayfalama numaralarını resimlerin aşağısında tutabilmek için gerekli. Aksi takdirde resimlerin yanına geçiyor. Başlangıç -->
<?php if ($sayfa > 1) { ?>
<!-- Aşağıdaki "div" sayfalama numaralarını birbirinin soluna almak için "float:left" ekledim. Numaraların birbirinden 10px sağa kayması için "padding" verdim. Resimlerin 10px aşağısında olması için. -->
<div style="float: left; padding-left: 10px; margin-top: 10px; margin-bottom: 37px;">
<a href="tumresimlerilistele.php?sayfa=1">İlk</a></div>
<!-- Aşağıdaki "div" sayfalama numaralarını birbirinin soluna almak için "float:left" ekledim. Numaraların birbirinden 10px sağa kayması için "padding" verdim. Resimlerin 10px aşağısında olması için. -->
<div style="float: left; padding-left: 10px; margin-top: 10px; margin-bottom: 37px;">
<a href="tumresimlerilistele.php?sayfa=<?php echo $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) {
?>
<div style="float: left; padding-left: 10px; margin-top: 10px; margin-bottom: 37px;"> <!-- Sayfalama numaralarını birbirinin soluna almak için "float:left" ekledim. Resimlerin 10px aşağısında olması için. Başlangıç -->
<?php echo '<span>'.$i.'</span>'; ?>
</div> <!-- Sayfalama numaralarını birbirinin soluna almak için "float:left" ekledim. Resimlerin 10px aşağısında olması için. Bitiş -->
<?php } else { ?>
<div style="float: left; padding-left: 10px; margin-top: 10px; margin-bottom: 37px;"> <!-- Sayfalama numaralarını birbirinin soluna almak için "float:left" ekledim. Resimlerin 10px aşağısında olması için. Başlangıç -->
<?php echo '<a href="tumresimlerilistele.php?sayfa='.$i.'">'.$i.'</a>'; ?>
</div> <!-- Sayfalama numaralarını birbirinin soluna almak için "float:left" ekledim. Resimlerin 10px aşağısında olması için. Bitiş -->
<?php } } } if ($sayfa != $sayfa_sayisi) { ?>
<!-- Aşağıdaki "div" sayfalama numaralarını birbirinin soluna almak için "float:left" ekledim. Numaraların birbirinden 10px sağa kayması için "padding-left" verdim. Resimlerin 10px aşağısında olması için. -->
<div style="float: left; padding-left: 10px; margin-top: 10px; margin-bottom: 37px;"><a href="tumresimlerilistele.php?sayfa=<?php echo $sayfa + 1 ?>">Sonraki</a></div>
<!-- Aşağıdaki "div" sayfalama numaralarını birbirinin soluna almak için "float:left" ekledim. Numaraların birbirinden 10px sağa kayması için "padding-left" verdim. Resimlerin 10px aşağısında olması için. -->
<div style="float: left; padding-left: 10px; margin-top: 10px; margin-bottom: 37px;"><a href="tumresimlerilistele.php?sayfa=<?php echo $sayfa_sayisi ?>">Son</a></div>
<?php } ?>
</div> <!-- Sayfalama numaralarını resimlerin aşağısında tutabilmek için gerekli. Aksi takdirde numaralar resimlerin yanına geçiyor. Bitiş -->
<br>
".cokluresimlisteleresim img:first-child(1)" yaptığımda resimler 3px sağa kayıyor. En baştaki resmi "0px!important" yapıyorum. İşe yaramıyor. ".cokluresimlisteleresim img:first-child" yapmadığımda ise yani "(1)" koymadığımda da 3px sağa gitmiyor. Yani tam tersi. "head" etiketleri arasında da işe yaramıyor. Asında div etiketi içine "img:nth-child" yazabilsem belki işe yarar. Yazılır mı yazılmaz mı bilmiyorum.
Kodlar işlemedi. Çalışmadı.
Sorunumu çözemedim halâ. :) Cevap veren var mı acaba?
Tekrar merhaba. Şimdi ben "masa" kelimesi 1'den fazla varsa dediğimde "isim=$degisken" vb bir şey yazmak lazım. O kısma ne yazmalı. O kısmı nasıl çekeceğiz.
Ya da şöyle anlatayım. Üç adet resim var. Resimler kayıt olurken birine verdiğim numara "2" diğerine de aynı şekilde "2" numarasını verdim. Üçüncünün numarası "4". Şimdi bu resimleri listelerken "2" numaralı olanlar yanyana eğer ki numara farklı ise bir aşağıda listelenmeli.
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