• 12-02-2025, 17:07:18
    #1
    Merhabalar,
    Databaseden çektiğim verileri foreach ile listeliyorum fakat number sütununda bulunan sayılara göre büyükten küçüğe göre sıralama yaptırmak istiyorum veriler listelenirken.
    Bunun için pratik ne yapabilirim ?
  • 12-02-2025, 17:12:17
    #2
    OrderBy
  • 12-02-2025, 17:15:19
    #3
    Kullanıcıları listeliyorum sadece, kullanıcı detaylarında da numaralar var. başka tablodaki veriye göre kullanıcı tablosunu listelemek istiyorum sırasıyla.
  • 12-02-2025, 17:20:37
    #4
    El3anaor adlı üyeden alıntı: mesajı görüntüle
    Kullanıcıları listeliyorum sadece, kullanıcı detaylarında da numaralar var. başka tablodaki veriye göre kullanıcı tablosunu listelemek istiyorum sırasıyla.
    SELECT user.id, ud.balance FROM users INNER JOIN user_details AS ud ON ud.user_id = user.id ORDER BY ud.balance DESC
    Denemedim ama bu tarz bir şey olması lazım

    Edit: Eğer INNER JOIN yapılan tabloda veri olmama ihtimali varsa LEFT JOIN ile değiştirebilirsiniz.
  • 12-02-2025, 17:24:12
    #5
    Merhaba,

    Eğer verileri veritabanından çekerken sıralamak istiyorsan, SQL sorgunda `ORDER BY` kullanabilirsin:

    SELECT * FROM tablo_adi ORDER BY number DESC;
    Eğer PHP tarafında sıralama yapmak istiyorsan, `usort()` fonksiyonunu kullanabilirsin:

    $data = [
        ["name" => "Ahmet", "number" => 5],
        ["name" => "Mehmet", "number" => 10],
        ["name" => "Ayşe", "number" => 7],
    ];
    
    usort($data, function ($a, $b) {
        return $b['number'] <=> $a['number']; // Büyükten küçüğe sıralama
    });
    
    foreach ($data as $row) {
        echo $row['name'] . " - " . $row['number'] . "<br>";
    }
    Ama en iyi ve performanslı çözüm, SQL'de sıralamayı yaparak veriyi zaten doğru şekilde almak olacaktır.

    Eğer ORM (Eloquent, Doctrine gibi) kullanıyorsan, ilgili ORM'nin `orderBy()` veya `sortByDesc()` gibi fonksiyonlarını kullanabilirsin.
  • 12-02-2025, 17:41:17
    #6
    Direkt foreach ile getirdiğim veriler içerisindeki bir tablodan php ile sıralama yapabilir miyiz ?
    örneğin :

    foreach ($data as $row) {
        $row["number"]  gelen verisine göre sıralamak gibi.
    }
  • 12-02-2025, 17:46:02
    #7
    El3anaor adlı üyeden alıntı: mesajı görüntüle
    Direkt foreach ile getirdiğim veriler içerisindeki bir tablodan php ile sıralama yapabilir miyiz ?
    örneğin :

    foreach ($data as $row) {
        $row["number"]  gelen verisine göre sıralamak gibi.
    }
    PHP'de foreach kullanarak doğrudan verileri sıralayamazsın, çünkü foreach sadece döngüye almanı sağlar. Ama verileri sıralamak için önce usort() veya array_multisort() fonksiyonlarını kullanabilirsin.