Mövzu - PHP, MySQLi - Mükəmməl səhifələmə

PHP, MySQLi - Mükəmməl səhifələmə



Alt bölmə: PHP
Fəsil: Proqramlaşdırma

Tema faylları
Şərhlər 9
Xoşdur. Nəbilim mən axtarırdım, tapdım, dedim paylaşım (bilməyənlər üçün).
5 Okt 2021, 17:56
0
Tşk))
5 Okt 2021, 15:20
0
Adi sehiflemedide ))
5 Okt 2021, 09:49
0
ISGNDRV, Xoşdur)
5 Okt 2021, 08:12
0
Təşəkkürlər məlumat üçün :)
5 Okt 2021, 01:50
0
[c]# RAbbasoff ([time]04.10.2021 21:28[/time])
Təşəkkürlər :)[/c]Xoşdur :)
5 Okt 2021, 01:35
0
Təşəkkürlər :)
5 Okt 2021, 01:28
0
Təbriklər ! Yeni mövzu uğurla yaradıldı! Əgər mövzu Qaydalara uyğun olmazsa silinəcək. Mövzudan kənara çıxmayın, mövzuda başqasının fikirlərinə hörmətlə yanaşın, probleminiz varsa şəxsidə həll edin, mövzuda artıq post yazmayın. Qeyd ! Ailəsinə hörmət edən, qeyrəti olan söyüş söyməz,forum reklam etməz
5 Okt 2021, 00:48
0
Salam, özümündə uzun zamandır axtardığım və məntiqini anlaya bilmədiyim...
[1] 2 3 ... 149 150 [irəli]
Bu növ səhifələm kodunu tapdım (Türklər paylaşıb)

[code=php]<?php
error_reporting(0);
$host = 'localhost'; //host bilgisi
$user = 'root'; //kullanıcı adı
$pass = ''; //sifre
$db= 'test'; //veritabanı ismi
$baglan = mysqli_connect($host, $user, $pass, $db) or die (mysqli_Error());
mysqli_query($baglan,"SET CHARACTER SET 'utf8'");
mysqli_query($baglan,"SET NAMES 'utf8'");
$sayfa = $_GET['sayfa'] ? $_GET['sayfa'] : 1; //urlden gelen sayfa değeri var ise o değeri, yok ise 1 değeri veriyoruz.
$toplam_icerik_sayisi = mysqli_num_rows(mysqli_query($baglan,'SELECT id FROM sekil'));
$limit = 4; //sayfalamada her sayfada gösterilecek veri sayısı
$sonSayfa = ceil($toplam_icerik_sayisi/$limit);//içerik sayısı ile limit değeri bölünüyor ve çıkan değer yuvarlanıyor. böylece sayfa sayısı diğer bir ifadeyse sonm sayfa değeri bulunuyor
//mesela 22 veri var. biz 4 er 4er listeliyoruz. 22 veriyi 6 sayfada gösterebiliriz.
//22/4 = 5.5 sonucunu yukarı yuvarlayıp sayfa sayısını buluyoruz.
$baslangic = ($sayfa-1)*$limit;
/*
mesela ilk sayfa 1. sayfa gösterilecek ise 1-1 = 0 - 0*4=0, veritabanından 0.veriden itibaren veriler getirilmeye başlansın
2. sayfa gösterilecek ise 2-1 = 1 - 1*4=4, veritabanından 4. veriden itibaren veriler getirilmeye başlansın
*/
if($sonSayfa >= $sayfa){
$icerik_sorgu = mysqli_query($baglan,'SELECT * FROM sekil LIMIT '.$baslangic.','.$limit); //başlangıç değerinden itibaren kaç tane veri getirilecek ise veritabanından LIMIT komutu ile verileri çekiyoruz
echo '<h1>Sayfalama İçerikler Örneği </h1>';
while ($icerik = mysqli_fetch_assoc($icerik_sorgu)){ //çekilen veriler içerisinde dönüyoruz, teker teker veriyi $icerik değişkenine aktarıyoruz
echo '<strong>',$icerik['link'],$icerik['id'],'</strong><br><hr>'; //ve veri değerlerini yazdırıyoruz
}
/*sayfalama buton kodları*/
if($toplam_icerik_sayisi > $limit){//içerik sayısı, her sayfada gösterilecek içerik sayısından büyük ise sayfalama butonları aktif edilsin
echo '<br><br>';
/*
$x = 2 olduğu durumda, aktif sayfanın önceki ve sonraki 2 sayfa gösterilir, sonrasına ... ifadesi konularak kısaltma yapılır.
böylelikle bütün sayfaları yazmamıza gerek kalmaz.
örnekler:
« Önceki 1...4 5 [6] 7 8...11 Sonraki » || [1] 2 3...11 Sonraki » || « Önceki 1...9 10 [11]
*/
$x = 2; //kısaltma limiti
if($sayfa > 1){//sayfa 1 den küçük ise [Önceki] butonu oluşturulmaya uygundur
$onceki = $sayfa-1;//aktif sayfanın bir önceki sayfa bulunur
echo '<a href="?sayfa='.$onceki.'">« Önceki </a>'; //link içerisine yazdırılıp [Önceki] butonu oluşturulur
}
if($sayfa==1){ //sayfalamada 1. sayfada bulunuyorsak
echo '<a>[1]</a>'; //1. sayfayı menüde aktif olarak gösteriyoruz
}
else{ // bulunmuyorsak
echo '<a href="?sayfa=1">1</a>'; //normal olarak gözüksün, aktif olmasın
}
//menü kısaltma işlemi
//bulunduğumuz sayfa yani $sayfa = 6 olduğu durumda
if($sayfa-$x > 2){ //6-2 > 2 değeri true döndürecek
echo '...'; //kısaltma etiketi yazdırılacak
$i = $sayfa-$x; //$i değişkenine 4 değeri atanacak
}else {
$i = 2;
}
//$sayfa = 6 olduğu durumda = sonuc çıktısı -> 1 ...
for($i; $i<=$sayfa+$x; $i++) { //$i yani 4 değeri 8 değerine ulaşasıya kadar döngü çalışsın> 4 5 6 7 8
if($i==$sayfa){ //$i değeri bulunduğumuz sayfa ile eşitse
echo '&nbsp;<a>['.$i.']</a>&nbsp;'; // aktif olarak işaretlensin ve yazdırılsın > 4 5 [6] 7 8
}
else{//değil ise
echo '<a href="?sayfa='.$i.'">'.$i.'</a>'; //normal olarak yazdırılsın
}
if($i==$sonSayfa) break;
}
//$sayfa = 6 olduğu durumda = sonuc çıktısı -> 1 ... 4 5 [6] 7 8
if($sayfa+$x < $sonSayfa-1) { //6+2<11-1 ise
echo '...'; //kısaltma etiketi yazdırılacak
echo '<a href="?sayfa='.$sonSayfa.'">'.$sonSayfa.'</a>'; //son sayfa yazdırılacak
}elseif($sayfa+$x == $sonSayfa-1) {
echo '<a href="?sayfa='.$sonSayfa.'">'.$sonSayfa.'</a>';
}
//$sayfa = 6 olduğu durumda = sonuc çıktısı -> 1 ... 4 5 [6] 7 8 ... 11
//menü kısaltma işlemi
if($sayfa < $sonSayfa){//bulunduğumuz sayfa hala son sayfa değil ise
$sonraki = $sayfa+1; //bulundğumuz sayfa değeri 1 arttırılıyor
echo '<a href="?sayfa='.$sonraki.'"> Sonraki » </a>'; //ve Sonraki butonu oluşturulup yazdırılıyor
}
}
}
/*sayfalama buton kodları*/
?>[/code]
Mənfi cəhəti budur ki, PDO ilə deyil MySQLi ilə hazırlanıb. Amma kodlardan məntiqi anlayaraq PDO ilə hazırlaya bilərsiniz özünüz. :)
5 Okt 2021, 00:48
0
Bağışlayın, sizin üçün şərh yazmaq əlçatan deyil
Geriyə

azTOP.biz
Onlayn istifadəçilər
HAMISI