PHP MySQL သည် ORDER BY Clause ကိုအသုံးပြုသည်။
MySQL ဒေတာဘေ့စ်မှဒေတာကိုရွေးချယ်ပြီးမှာယူပါ။
ORDER BY clause ကို ကြီးကြီးလိုက်ကြီး သို့မဟုတ် ကြီးစဉ်ငယ်လိုက်ဖြင့် ရလဒ်ကို စီစဥ်ရန် အသုံးပြုသည်။
ORDER BY clause သည် ပုံမှန်အားဖြင့် မှတ်တမ်းများကို ငယ်စဉ်လိုက် စီသည်။ မှတ်တမ်းများကို ကြီးစဉ်ငယ်လိုက် စီရန်၊ DESC သော့ချက်စာလုံးကို အသုံးပြုပါ။
SELECT column_name(s)
FROM table_name ORDER BY column_name(s) ASC|DESC
SQL အကြောင်းပိုမိုလေ့လာရန်၊ ကျွန်ုပ်တို့၏ SQL သင်ခန်းစာကို ဝင်ရောက် ကြည့်ရှုပါ ။
MySQLi ဖြင့် ဒေတာကို ရွေးချယ်ပြီး မှာယူပါ။
အောက်ပါဥပမာသည် MyGuests ဇယားမှ id၊ firstname နှင့် lastname ကော်လံများကို ရွေးသည်။ မှတ်တမ်းများကို နောက်ဆုံးအမည် ကော်လံဖြင့် စီစစ်ပါမည်။
ဥပမာ (MySQLi Object-oriented)
<?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();
?>
အထက်ဖော်ပြပါ ဥပမာမှ ရှင်းပြရန် ကုဒ်လိုင်းများ
ဦးစွာ၊ MyGuests ဇယားမှ id၊ firstname နှင့် lastname ကော်လံများကို ရွေးချယ်သည့် SQL query ကို စတင်သတ်မှတ်ပါသည်။ မှတ်တမ်းများကို နောက်ဆုံးအမည် ကော်လံဖြင့် စီစစ်ပါမည်။ ကုဒ်၏နောက်တစ်ကြောင်းသည် query ကိုလုပ်ဆောင်ပြီး ရလဒ်ဒေတာကို $result ဟုခေါ်သော ကိန်းရှင်တစ်ခုအဖြစ် ထည့်သွင်းသည်။
ထို့နောက် function num_rows()
သုညအတန်းများ ပြန်လာသည်ကို စစ်ဆေးမှုများ ပြုလုပ်ပါ။
ပြန်ပို့သည့် အတန်း သုညထက် ပိုနေပါက၊ လုပ်ဆောင်ချက် fetch_assoc()
သည် ရလဒ်အားလုံးကို ကျွန်ုပ်တို့ ဖြတ်သန်းနိုင်သည့် ဆက်စပ် ခင်းကျင်းတစ်ခုထဲသို့ ထည့်သွင်းပေးသည်။ ကွင်းဆက် while()
သည် ရလဒ်အစုံမှတဆင့် လှည့်ပတ်ပြီး id၊ ပထမအမည်နှင့် နောက်ဆုံးအမည် ကော်လံများမှ ဒေတာကို ထုတ်သည်။
အောက်ဖော်ပြပါ ဥပမာသည် MySQLi လုပ်ထုံးလုပ်နည်းအရ အထက်ဖော်ပြပါ ဥပမာနှင့် အတူတူပင်ဖြစ်သည်-
ဥပမာ (MySQLi Procedural)
<?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);
?>
ရလဒ်ကို HTML ဇယားတွင် ထည့်နိုင်သည်။
ဥပမာ (MySQLi Object-oriented)
<?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 ဖြင့် ဒေတာကို ရွေးပါ (+ပြင်ဆင်ထားသော ထုတ်ပြန်ချက်)
အောက်ပါဥပမာသည် ပြင်ဆင်ထားသောထုတ်ပြန်ချက်များကို အသုံးပြုသည်။
ဤနေရာတွင် MyGuests ဇယားမှ id၊ firstname နှင့် lastname ကော်လံများကို ရွေးချယ်ပါ။ မှတ်တမ်းများကို နောက်ဆုံးအမည်ကော်လံဖြင့် စီစစ်မည်ဖြစ်ပြီး ၎င်းကို HTML ဇယားတစ်ခုတွင် ပြသမည်ဖြစ်သည်။
ဥပမာ (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>";
?>