PHP တွင် MySQLI တိုးချဲ့ခြင်းစာကြည့်တိုက်သည် MySQL database များနှင့်အပြန်အလှန်ဆက်သွယ်မှုအတွက်ကြွယ်ဝသောလုပ်ဆောင်နိုင်စွမ်းကိုပေးသည်။ MySQLI_RESELT ဆိုသည်မှာဘုံရလဒ်တစ်ခုဖြစ်သည့်ဘုံရလဒ်အနေဖြင့်သင့်အားမေးမြန်းမှုရလဒ်များကိုအဆင်ပြေစွာရရှိရန်ခွင့်ပြုသည်။ ဤဆောင်းပါးသည် server-side data filtering နှင့် sorting လုပ်ဆောင်ချက်များကိုအကောင်အထည်ဖော်ရန် MySQLI_RESFURTURT function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးရန်ဥပမာတစ်ခုကိုအသုံးပြုမည်။
PHP 0 က်ဘ်အပလီကေးရှင်းများတည်ဆောက်ရာတွင်များစွာသောကိစ္စများတွင်အချက်အလက်အမြောက်အများကိုလုပ်ဆောင်ရန်လိုအပ်သည်။ ဤအချက်အလက်များကို client ပေါ်တွင်စီစစ်ခြင်းနှင့် sorting အသုံးပြုသူအတွက်မလိုအပ်သောစောင့်ဆိုင်းချိန်ကိုဖြစ်ပေါ်စေနိုင်သည်။ ထိရောက်မှုကိုတိုးတက်စေရန်အတွက်စစ်ထုတ်ခြင်းနှင့် sorting ယုတ္တိဗေဒကိုဆာဗာဘက်တွင်ကွပ်မျက်ရန်နေရာချထားနိုင်သည်။ ဤဆောင်းပါးသည် PHP တွင် MySQLI_RESELT မှတဆင့်ဤရည်မှန်းချက်ကိုမည်သို့အောင်မြင်ရန်မည်သို့အောင်မြင်ရမည်ကိုရှင်းပြပါမည်။
ပထမ ဦး စွာ MySQL ဒေတာဘေ့စ်နှင့်ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ရန်လိုအပ်သည်။ ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ရန် MySQLI_Connect function ကိုသင်အသုံးပြုနိုင်သည်။
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// ဆက်သွယ်မှုတစ်ခုဖန်တီးပါ
$conn = mysqli_connect($servername, $username, $password, $dbname);
// ဆက်သွယ်မှုကိုစစ်ဆေးပါ
if (!$conn) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . mysqli_connect_error());
}
?>
ဒီဥပမာမှာ Test_DB လို့ခေါ်တဲ့ဒေတာဘေ့စ်ကိုဆက်သွယ်တယ်။ ဒေတာဘေ့စဆက်သွယ်မှုမအောင်မြင်ပါကကျွန်ုပ်တို့သည်အမှားအယွင်းတစ်ခုထုတ်ပေးလိမ့်မည်။
ကျွန်ုပ်တို့တွင် Fields ID , အမည် , စျေးနှုန်း နှင့် ဖန်တီးမှုပါ 0 င် သော အချက်အလက်များ ဟုခေါ်သည့်အချက်အလက်များဟုခေါ်သည့်အချက်အလက်များပါရှိသည်ဆိုပါစို့။ နောက်ဒေတာကိုရယူရန်နှင့်ရလဒ်ကိုပြန်ပို့ရန် MySQLI_Query function ကိုသုံးရန် SQL query ကိုအသုံးပြုပါမည်။
<?php
$sql = "SELECT * FROM products";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output ကိုဒေတာ
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Price: " . $row["price"]. "<br>";
}
} else {
echo "ဒေတာမရှိပါ";
}
?>
ဤရှာဖွေမှုသည်ထုတ်ကုန်အားလုံး၏စာရင်းကိုပြန်လည်ရယူပြီးရလဒ်များကိုလိုင်းဖြင့်ဖော်ပြထားသည်။
အသုံးပြုသူအတွေ့အကြုံကိုတိုးတက်စေရန်အတွက်အချက်အလက်များ၏စစ်ထုတ်ခြင်းနှင့် sorting လုပ်ငန်းများကိုကျွန်ုပ်တို့အကောင်အထည်ဖော်နိုင်သည်။ ကျွန်ုပ်တို့သည်ထုတ်ကုန်များကိုစျေးနှုန်းနှင့်အမည်ဖြင့် filter လုပ်ပြီးစီရန်လိုသည်ဆိုပါစို့။
URL parameters တွေကိုလက်ခံရရှိခြင်းဖြင့်အချက်အလက်များကိုကျွန်ုပ်တို့စစ်ထုတ်နိုင်သည်။ ဥပမာအားဖြင့်အသုံးပြုသူများသည်ထုတ်ကုန်များကို 50 ထက်ကြီးသောစျေးနှုန်းများဖြင့်ထုတ်ယူလိုကြသည်။ ၎င်းကိုအောက်ပါနည်းလမ်းများဖြင့်အကောင်အထည်ဖော်နိုင်သည်။
<?php
$price_filter = isset($_GET['price']) ? $_GET['price'] : 0;
$sql = "SELECT * FROM products WHERE price > $price_filter";
$result = mysqli_query($conn, $sql);
?>
ထို့အပြင်အသုံးပြုသူများသည်အချက်အလက်များကိုစျေးနှုန်းသို့မဟုတ်အမည်ဖြင့်ခွဲရန်လိုအပ်သည်။ ဤအရာကိုအောင်မြင်ရန်အမိန့် ဖြင့်အမှာစာကို ကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။
<?php
$sort_by = isset($_GET['sort']) ? $_GET['sort'] : 'price';
$order = isset($_GET['order']) ? $_GET['order'] : 'ASC';
$sql = "SELECT * FROM products ORDER BY $sort_by $order";
$result = mysqli_query($conn, $sql);
?>
ဤဥပမာတွင်အသုံးပြုသူသည် fields ( sort ) နှင့်အမိန့် ( အ မိန့် ) ကို URL Parameter မှတစ်ဆင့်သတ်မှတ်နိုင်သည်။ ဥပမာအားဖြင့် sort = စျေးနှုန်းနှင့်အမှာစာ = desc ကို စျေးနှုန်းများအရအဆင့်အတန်းတွင်ခွဲထားလိမ့်မည်။
တစ်ချိန်တည်းတွင် filtering နှင့် sorting function များကိုအကောင်အထည်ဖော်ရန်အတွက်ကျွန်ုပ်တို့သည်လုပ်ဆောင်ချက်နှစ်ခုကိုပေါင်းစပ်နိုင်သည်။
<?php
$price_filter = isset($_GET['price']) ? $_GET['price'] : 0;
$sort_by = isset($_GET['sort']) ? $_GET['sort'] : 'price';
$order = isset($_GET['order']) ? $_GET['order'] : 'ASC';
$sql = "SELECT * FROM products WHERE price > $price_filter ORDER BY $sort_by $order";
$result = mysqli_query($conn, $sql);
?>
ဤနည်းအားဖြင့်အသုံးပြုသူများသည်စီစစ်ခြင်းအခြေအနေများအကြားရွေးချယ်နိုင်သည် (စျေးနှုန်းသည်တန်ဖိုးတစ်ခုထက်ကြီးသည်) နှင့် sorting နည်းလမ်းများ (စျေးနှုန်းသို့မဟုတ်အမည်, တက်ခြင်း,
ဤတွင် filtering နှင့် sorting function များကိုပေါင်းစပ်ထားသော PHP နမူနာကုဒ်ဖြစ်သည်။
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . mysqli_connect_error());
}
$price_filter = isset($_GET['price']) ? $_GET['price'] : 0;
$sort_by = isset($_GET['sort']) ? $_GET['sort'] : 'price';
$order = isset($_GET['order']) ? $_GET['order'] : 'ASC';
$sql = "SELECT * FROM products WHERE price > $price_filter ORDER BY $sort_by $order";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Price: " . $row["price"]. "<br>";
}
} else {
echo "ဒေတာမရှိပါ";
}
mysqli_close($conn);
?>
ဤဥပမာတွင်အသုံးပြုသူသည် filtering နှင့် parameters များကို URL မှတစ်ဆင့် parameters များကို sorting လုပ်နိုင်သည်။
http://m66.net/products.php?phproice=50&sort=Name&Onder=NAMESESSORD : 50 ထက်ကြီးသောစျေးနှုန်းများနှင့်အတူ filter ထုတ်ကုန်များကိုထုတ်ယူပါ။
http://m66.net/products.php?pproty=100&sort=100&udesde=desc : 100 ထက်ကြီးသောစျေးနှုန်းများနှင့်အတူ filter ကိုထုတ်ကုန်များကိုစီစဉ်ပါ။
ဤဆောင်းပါးသည် PHP တွင် server-side data filtering ကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကို MySQLI_RESELT function ကို ဖြတ်. PHP တွင်မည်သို့လုပ်ဆောင်ရမည်ကိုမိတ်ဆက်ပေးသည်။ SQL ၏ နေရာကို ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဝါကျများ အားဖြင့်အမိန့်ကို ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်များစွာသောအချက်အလက်များကိုထိရောက်စွာလုပ်ဆောင်နိုင်ပြီး 0 န်ဆောင်မှုခံယူသူများအတွက်ဝန်ထုပ်ဝန်ပိုးကိုလျှော့ချနိုင်သည်။ လက်တွေ့ကျသောအပလီကေးရှင်းများအနေဖြင့် filtering အခြေအနေများကိုချိန်ညှိနိုင်သည်။