lostyazilim
tr.link

veritabanından gelen kayıtları listeletirken sıra numarası ekleme

6 Mesajlar 895 Okunma
lstbozum
tr.link

melihonline melihonline WM Aracı Kullanıcı
  • Üyelik 24.11.2018
  • Yaş/Cinsiyet 39 / E
  • Meslek Bilgisayar Teknikeri
  • Konum Antalya
  • Ad Soyad M** K**
  • Mesajlar 91
  • Beğeniler 8 / 7
  • Ticaret 0, (%0)

Merhaba arkadaşlar. Ben veritabanından kayıtlar çağırıyorum. Listelenen kayıtlarda 1 den başlayarak sıra numarası eklenecek. Veya son kayıt kaç ise o kayıttan başa doğru gidecek. Mesela 100 kayıt var ise 100 99 98 şeklinde alt alta kayıtları listeleyecek.

id ile yapamıyorum karışık numalar alıyor çünkü. Sıraya göre gitmemiş oluyor. 

Bu istediğimi nasıl yapabilirim arkadaşlar?

 

 

wmaraci
reklam

OmerGunay OmerGunay https://omergunay.net Kullanıcı
  • Üyelik 15.05.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek PHP Developer
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** G**
  • Mesajlar 1207
  • Beğeniler 382 / 381
  • Ticaret 16, (%100)

count ile toplam değeri bul sonra foreach içinde -- yaparak yapabilirsin.

 

 

Herkes yediğinden ikram eder..(Yavuz Sultan Selim)

melihonline melihonline WM Aracı Kullanıcı
  • Üyelik 24.11.2018
  • Yaş/Cinsiyet 39 / E
  • Meslek Bilgisayar Teknikeri
  • Konum Antalya
  • Ad Soyad M** K**
  • Mesajlar 91
  • Beğeniler 8 / 7
  • Ticaret 0, (%0)

ÖmerGünay adlı üyeden alıntı

count ile toplam değeri bul sonra foreach içinde -- yaparak yapabilirsin.

 

mysqli_num_rows komutu ile kayıt sayısını buldum. while içinde de kayıt sayısını 1 er azalttım. Bu şekilde oldu istediğim.

Ancak daha sonra sayfalama ekledim. Sayfalama da sıkıntı çıktı.

Mesela her sayfada 2 kayıt olsun dedim. Listeleme aşağıdaki şekilde çıkıyor. Her sayfada 2 ve 1 çıkıyor.

1. Sayfa             2. Sayfa            3. Sayfa

--------            -----------         ---------

2-melih             2-hakan        2-mehmet

1-ahmet            1-celal          1-selçuk

___________________________________________ Şu şekilde yapma imkanımız var mıdır peki hocam?

1. Sayfa             2. Sayfa            3. Sayfa

--------            -----------         ---------

6-melih             4-hakan        2-mehmet

5-ahmet           3-celal           1-selçuk

 

 

OmerGunay OmerGunay https://omergunay.net Kullanıcı
  • Üyelik 15.05.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek PHP Developer
  • Konum İstanbul Avrupa
  • Ad Soyad Ö** G**
  • Mesajlar 1207
  • Beğeniler 382 / 381
  • Ticaret 16, (%100)

yani sayfa mantığınızı bilmiyorum ama tahminime göre page=1 page=2 şeklinde yapıyorsunuz.

 

Şöyle bir formül yapabilirsiniz.

1.Sayfa page=1 diyelim

 

$count - ($page-1)*$page; // $count = mysqli_num_rows tan gelen toplam değer yani 6. $page malum page=1 ise 1.

Şimdi 1. sayfa için uygulayalım.

6-(1-1)*1 = 6

Diğeri de bunun 1 eksisi.

 

2.Sayfa için bakalım.

 

6-(2-1)*2 = 4

gibi gibi.

 

 

 

Herkes yediğinden ikram eder..(Yavuz Sultan Selim)
wmaraci
wmaraci

melihonline melihonline WM Aracı Kullanıcı
  • Üyelik 24.11.2018
  • Yaş/Cinsiyet 39 / E
  • Meslek Bilgisayar Teknikeri
  • Konum Antalya
  • Ad Soyad M** K**
  • Mesajlar 91
  • Beğeniler 8 / 7
  • Ticaret 0, (%0)

ÖmerGünay adlı üyeden alıntı

yani sayfa mantığınızı bilmiyorum ama tahminime göre page=1 page=2 şeklinde yapıyorsunuz.

 

Şöyle bir formül yapabilirsiniz.

1.Sayfa page=1 diyelim

 

$count - ($page-1)*$page; // $count = mysqli_num_rows tan gelen toplam değer yani 6. $page malum page=1 ise 1.

Şimdi 1. sayfa için uygulayalım.

6-(1-1)*1 = 6

Diğeri de bunun 1 eksisi.

 

2.Sayfa için bakalım.

 

6-(2-1)*2 = 4

gibi gibi.

 

 Teşekkürler hocam elinize sağlık.

 

 

Hamburcer Hamburcer WM Aracı Kullanıcı
  • Üyelik 03.01.2023
  • Yaş/Cinsiyet 38 / E
  • Meslek yazılım
  • Konum Ankara
  • Ad Soyad M** D**
  • Mesajlar 16
  • Beğeniler 4 / 6
  • Ticaret 0, (%0)
    $satir_sayisi = DB::getVar('SELECT COUNT(id) FROM tabloName');

    if(isset($_GET['sayfa']) && is_numeric($_GET['sayfa'])){
        $sayfa = $_GET['sayfa'];
        if($sayfa < 0){
            $sayfa=1;
        }
    }else{
        $sayfa = 1;
    }
    $limit  = 3;
    $ss     = ceil( $satir_sayisi / $limit );
    $sayfa  = ( $sayfa > $ss ? 1 : $sayfa );
    $goster = ( $sayfa * $limit ) - $limit;

$datalar= DB::get('SELECT * FROM tabloName ORDER BY id DESC LIMIT '.$goster.','.$limit.'');

$saydir=0;
foreach($datalar as $data){
$saydir++;
echo "Sıra No:".$goster + $saydir;
}

Sayfa 1
1
2
3
Sayfa 2
4
5
6

Mesaj 2 defa düzenlendi. Son düzenleyen: Hamburcer (04.01.2023 11:37)

 

 

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