v2.5.2
Giriş yap

PHP Veri sıralama

radames
1,639 defa görüntülendi

Bir istatistik tablosu için verileri SQL üzerinden DESC ile son 5 kayıt olacak şekilde çekiyorum. Fakat çektiğim veriler 6,5,4,3,2 şeklinde geliyor ASC Olarak çektiğimde ise son 5 kayıt yerine ilk 5 kayıt alıyorum. Yapmak istediğim verileri 2,3,4,5,6 şeklinde sıralayarak son 5 kaydı çekmek

Kullandığım fonksiyon

<code>

$query = $db->query("SELECT * FROM `stats` WHERE `kullanici_adi`='".$kullanici_adi."' ORDER BY id DESC LIMIT 5")

</code>

<img src="https://sanalkurs.net/files/1583613818.png&quot;&gt;

Özet olarak ; ASC olarak çektiğim son veri Chart üzerinde ters olarak sıralnıyor bunu 2,3,4,5,6 Şeklinde sıralanmasını istiyorum

Cevap yaz
Cevaplar (2)
iskenderhalisoglu
1751 gün önce

Aşağıdaki gibi tek iç içe mysql sorgusuyla çözebilirsin.

SELECT * FROM (

SELECT * FROM tablo ORDER BY id DESC LIMIT 0,5

) AS yeniTablo ORDER BY id ASC

coder
1751 gün önce

Şöyle olabilir.

Stats tablosunda bir stats_tarih kısmı oluşturun.
ORDER BY stats_tarih DESC LIMIT 5 şeklinde Sql kodunu yazarsanız son zamanda eklenene 5 kaydı getirir. Ancak sıralama çoktan aza şeklinde olur.
Sizin istediğiniz gibi azdan çoka doğru çıktı alabilmek için php tarafında fetchAll(PDO::FETCH_ASSOC) kısmını array_reverse() fonksiyonundan geçirmek gerekir.

$query = $db->query("SELECT * FROM `stats` WHERE `kullanici_adi`='".$kullanici_adi."' ORDER BY stats_tarih DESC LIMIT 5");
$query->execute();

$sonuc = array_reverse( $query->fetchAll(PDO::FETCH_ASSOC) );