lostyazilim
tr.link

Sayafalama sorunu

3 Mesajlar 504 Okunma
acebozum
tr.link

digrev digrev WM Aracı Kullanıcı
  • Üyelik 11.10.2018
  • Yaş/Cinsiyet 34 / E
  • Meslek ÖĞRENCİ
  • Konum İstanbul Anadolu
  • Ad Soyad A** E**
  • Mesajlar 193
  • Beğeniler 4 / 7
  • Ticaret 0, (%0)
Arkdaşlar aşağıdaki gibi bir kodum var sayfalama yapmaya çalışıyorum ama tam olarak çalışmıyor sorunun sql sorgusunda olduğunu farkettim çünkü limit 3 gibi bir değer verirsem veriler geliyor ama bu şekilde yazınca olmuyor.

$gosterilecek=$baglanti->db->prepare("select * from konular limit".$limit.",".$sayfada);
Acaba nasıl yapmalıyım

require "baglanti.php";
require "funct.php";
$baglanti=new baglanti();
$funct=new funct();
$sayfada=2;

$toplamSayi= $funct->adet();
$sayfaAdet=ceil($toplamSayi/$sayfada);

$mevcutSayfa=isset($_GET["page"])?(int)$_GET["page"]:"1";

if($_GET["page"]<0){
$_GET["page"]="1";
}else if($_GET["page"]>$sayfaAdet){
$_GET["page"]=$sayfaAdet;

}
$limit=($mevcutSayfa-1)*$sayfada;
$gosterilecek=$baglanti->db->prepare("select * from konular limit".$limit.",".$sayfada);
$gosterilecek->execute();
$sayfalar=$gosterilecek->fetchAll(PDO::FETCH_ASSOC);
foreach ($sayfalar as $key => $value) {
echo $key;
}
 

 

wmaraci
reklam

Decimas Decimas WM Aracı Kullanıcı
  • Üyelik 19.04.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek Developer
  • Konum İstanbul Avrupa
  • Ad Soyad E** E**
  • Mesajlar 820
  • Beğeniler 1 / 302
  • Ticaret 1, (%100)
Gist

SQL sorgunda hata olduğunu düşünüyorsan muhtemelen hesap hatası yapıyorsundur bunun dışında kodunda bir hata göremedim. Ben şöyle bir yol izliyorum, karşılaştırıp değerlendirebilirsin.


function pagination($total, $page, $limit, $query)
{
$total = !is_numeric($total) ? 0 : (int) $total;
$page = !is_numeric($page) ? 1 : (int) $page;
$limit = !is_numeric($limit) ? 25 : (int) $limit;

$total = (int) $total;

// query limit start
$querystart = (($page === 0 ? 2 : $page) - 1) * $limit;
// last page page number
$last = ceil($total / $limit) ? ceil($total / $limit) : 1;
// first page number
$start = $page != $last && $page > $last ? ($page - 5) : 1;
// end of page before last page
$end = $page < $last ? $last - 1 : $last;

// select all for listing
$results = is_array($query) ? $query : $this->db->runSelect("{$query} LIMIT {$querystart}, {$limit}"); // bu kısım örnek

return [
'last' => $last,
'start' => $start,
'end' => $end,
'page' => $page,
'total_results' => $total,
'results' => $results,
];
}
 

 

no time for caution

digrev digrev WM Aracı Kullanıcı
  • Üyelik 11.10.2018
  • Yaş/Cinsiyet 34 / E
  • Meslek ÖĞRENCİ
  • Konum İstanbul Anadolu
  • Ad Soyad A** E**
  • Mesajlar 193
  • Beğeniler 4 / 7
  • Ticaret 0, (%0)
teşekkürler
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al