PHP MySQL Menggunakan Klausa ORDER BY
Pilih dan Pesan Data Dari Database MySQL
Klausa ORDER BY digunakan untuk mengurutkan kumpulan hasil dalam urutan menaik atau menurun.
Klausa ORDER BY mengurutkan catatan dalam urutan menaik secara default. Untuk mengurutkan catatan dalam urutan menurun, gunakan kata kunci DESC.
SELECT column_name(s)
FROM table_name ORDER BY column_name(s) ASC|DESC
Untuk mempelajari lebih lanjut tentang SQL, silakan kunjungi tutorial SQL kami .
Pilih dan Pesan Data Dengan MySQLi
Contoh berikut memilih kolom id, firstname dan lastname dari tabel MyGuests. Catatan akan diurutkan berdasarkan kolom nama belakang:
Contoh (MySQLi Berorientasi objek)
<?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();
?>
Baris kode untuk menjelaskan dari contoh di atas:
Pertama, kami menyiapkan kueri SQL yang memilih kolom id, nama depan, dan nama belakang dari tabel MyGuests. Catatan akan diurutkan berdasarkan kolom nama belakang. Baris kode berikutnya menjalankan kueri dan memasukkan data yang dihasilkan ke dalam variabel yang disebut $result.
Kemudian, function num_rows()
memeriksa apakah ada lebih dari nol baris yang dikembalikan.
Jika ada lebih dari nol baris yang dikembalikan, fungsi tersebut fetch_assoc()
menempatkan semua hasil ke dalam larik asosiatif yang dapat kita ulangi. Perulangan while()
loop melalui kumpulan hasil dan mengeluarkan data dari kolom id, nama depan dan nama belakang.
Contoh berikut menunjukkan sama seperti contoh di atas, dengan cara prosedural MySQLi:
Contoh (Prosedural MySQLi)
<?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);
?>
Anda juga dapat meletakkan hasilnya dalam tabel HTML:
Contoh (MySQLi Berorientasi objek)
<?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();
?>
Pilih Data Dengan PDO (+ Pernyataan yang Disiapkan)
Contoh berikut menggunakan pernyataan yang disiapkan.
Di sini kita memilih kolom id, firstname dan lastname dari tabel MyGuests. Catatan akan diurutkan berdasarkan kolom nama belakang, dan akan ditampilkan dalam tabel HTML:
Contoh (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>";
?>