PHP MySQL ORDER BY Cümlesini Kullanın
MySQL Veritabanından Veri Seçin ve Sipariş Edin
ORDER BY deyimi, sonuç kümesini artan veya azalan düzende sıralamak için kullanılır.
ORDER BY deyimi, kayıtları varsayılan olarak artan düzende sıralar. Kayıtları azalan düzende sıralamak için DESC anahtar sözcüğünü kullanın.
SELECT column_name(s)
FROM table_name ORDER BY column_name(s) ASC|DESC
SQL hakkında daha fazla bilgi edinmek için lütfen SQL eğitimimizi ziyaret edin .
MySQLi ile Verileri Seçin ve Sipariş Edin
Aşağıdaki örnek, Misafirlerim tablosundan kimlik, ad ve soyadı sütunlarını seçer. Kayıtlar soyadı sütununa göre sıralanacaktır:
Örnek (MySQLi Nesneye yönelik)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests ORDER BY lastname";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
Yukarıdaki örnekten açıklanacak kod satırları:
Öncelikle MyGuests tablosundan id, ad ve soyad sütunlarını seçen SQL sorgusunu kuruyoruz. Kayıtlar soyadı sütununa göre sıralanacaktır. Sonraki kod satırı sorguyu çalıştırır ve elde edilen verileri $result adlı bir değişkene koyar.
Ardından, function num_rows()
döndürülen sıfırdan fazla satır olup olmadığını kontrol eder.
Döndürülen sıfırdan fazla satır varsa, işlev fetch_assoc()
tüm sonuçları döngüye girebileceğimiz bir ilişkisel diziye koyar. Döngü , while()
sonuç kümesi boyunca döner ve id, ad ve soyad sütunlarından verileri çıkarır.
Aşağıdaki örnek, yukarıdaki örnekle aynı şeyi MySQLi prosedürel şekilde gösterir:
Örnek (MySQLi Prosedürü)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT id, firstname, lastname FROM MyGuests
ORDER BY lastname";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
Sonucu bir HTML tablosuna da koyabilirsiniz:
Örnek (MySQLi Nesneye yönelik)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, firstname, lastname FROM MyGuests ORDER BY lastname";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table><tr><th>ID</th><th>Name</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["id"]."</td><td>".$row["firstname"]." ".$row["lastname"]."</td></tr>";
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
PDO ile Veri Seçin (+ Hazır İfadeler)
Aşağıdaki örnek, hazırlanmış ifadeleri kullanır.
Burada MyGuests tablosundan id, ad ve soyad sütunlarını seçiyoruz. Kayıtlar soyadı sütununa göre sıralanacak ve bir HTML tablosunda görüntülenecektir:
Örnek (PDO)
<?php
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";
class TableRows extends RecursiveIteratorIterator {
function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}
function current() {
return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
}
function beginChildren() {
echo "<tr>";
}
function endChildren() {
echo "</tr>" . "\n";
}
}
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests
ORDER BY lastname");
$stmt->execute();
// set the resulting array to associative
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
}
} catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>