လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> server-side filtering နှင့် sorting ကိုအကောင်အထည်ဖော်ရန် MySQLI_RESELT ကိုအသုံးပြုသည်

server-side filtering နှင့် sorting ကိုအကောင်အထည်ဖော်ရန် MySQLI_RESELT ကိုအသုံးပြုသည်

M66 2025-05-18

PHP တွင် MySQLI တိုးချဲ့ခြင်းစာကြည့်တိုက်သည် MySQL database များနှင့်အပြန်အလှန်ဆက်သွယ်မှုအတွက်ကြွယ်ဝသောလုပ်ဆောင်နိုင်စွမ်းကိုပေးသည်။ MySQLI_RESELT ဆိုသည်မှာဘုံရလဒ်တစ်ခုဖြစ်သည့်ဘုံရလဒ်အနေဖြင့်သင့်အားမေးမြန်းမှုရလဒ်များကိုအဆင်ပြေစွာရရှိရန်ခွင့်ပြုသည်။ ဤဆောင်းပါးသည် server-side data filtering နှင့် sorting လုပ်ဆောင်ချက်များကိုအကောင်အထည်ဖော်ရန် MySQLI_RESFURTURT function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးရန်ဥပမာတစ်ခုကိုအသုံးပြုမည်။

1 ။ နိဒါန်း

PHP 0 က်ဘ်အပလီကေးရှင်းများတည်ဆောက်ရာတွင်များစွာသောကိစ္စများတွင်အချက်အလက်အမြောက်အများကိုလုပ်ဆောင်ရန်လိုအပ်သည်။ ဤအချက်အလက်များကို client ပေါ်တွင်စီစစ်ခြင်းနှင့် sorting အသုံးပြုသူအတွက်မလိုအပ်သောစောင့်ဆိုင်းချိန်ကိုဖြစ်ပေါ်စေနိုင်သည်။ ထိရောက်မှုကိုတိုးတက်စေရန်အတွက်စစ်ထုတ်ခြင်းနှင့် sorting ယုတ္တိဗေဒကိုဆာဗာဘက်တွင်ကွပ်မျက်ရန်နေရာချထားနိုင်သည်။ ဤဆောင်းပါးသည် PHP တွင် MySQLI_RESELT မှတဆင့်ဤရည်မှန်းချက်ကိုမည်သို့အောင်မြင်ရန်မည်သို့အောင်မြင်ရမည်ကိုရှင်းပြပါမည်။

2 ။ ဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ

ပထမ ဦး စွာ 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 လို့ခေါ်တဲ့ဒေတာဘေ့စ်ကိုဆက်သွယ်တယ်။ ဒေတာဘေ့စဆက်သွယ်မှုမအောင်မြင်ပါကကျွန်ုပ်တို့သည်အမှားအယွင်းတစ်ခုထုတ်ပေးလိမ့်မည်။

3 ။ စုံစမ်းမှုကို execute နှင့်ရလဒ်များကိုရယူပါ

ကျွန်ုပ်တို့တွင် 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 "ဒေတာမရှိပါ";
}
?>

ဤရှာဖွေမှုသည်ထုတ်ကုန်အားလုံး၏စာရင်းကိုပြန်လည်ရယူပြီးရလဒ်များကိုလိုင်းဖြင့်ဖော်ပြထားသည်။

4 ။ ဒေတာစီစစ်ခြင်းနှင့် sorting လုပ်ဆောင်ချက်များကိုအကောင်အထည်ဖော်ပါ

အသုံးပြုသူအတွေ့အကြုံကိုတိုးတက်စေရန်အတွက်အချက်အလက်များ၏စစ်ထုတ်ခြင်းနှင့် sorting လုပ်ငန်းများကိုကျွန်ုပ်တို့အကောင်အထည်ဖော်နိုင်သည်။ ကျွန်ုပ်တို့သည်ထုတ်ကုန်များကိုစျေးနှုန်းနှင့်အမည်ဖြင့် filter လုပ်ပြီးစီရန်လိုသည်ဆိုပါစို့။

function ကို function ကို

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);
?>

function ကို sort

ထို့အပြင်အသုံးပြုသူများသည်အချက်အလက်များကိုစျေးနှုန်းသို့မဟုတ်အမည်ဖြင့်ခွဲရန်လိုအပ်သည်။ ဤအရာကိုအောင်မြင်ရန်အမိန့် ဖြင့်အမှာစာကို ကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။

 <?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 ကို စျေးနှုန်းများအရအဆင့်အတန်းတွင်ခွဲထားလိမ့်မည်။

5 ။ ပြည့်စုံစစ်ထုတ်ခြင်းနှင့် sorting

တစ်ချိန်တည်းတွင် 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 နည်းလမ်းများ (စျေးနှုန်းသို့မဟုတ်အမည်, တက်ခြင်း,

6 ။ ပြီးပြည့်စုံသောဥပမာ

ဤတွင် 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 ကိုထုတ်ကုန်များကိုစီစဉ်ပါ။

7 ။ အကျဉ်းချုပ်

ဤဆောင်းပါးသည် PHP တွင် server-side data filtering ကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကို MySQLI_RESELT function ကို ဖြတ်. PHP တွင်မည်သို့လုပ်ဆောင်ရမည်ကိုမိတ်ဆက်ပေးသည်။ SQL ၏ နေရာကို ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဝါကျများ အားဖြင့်အမိန့်ကို ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်များစွာသောအချက်အလက်များကိုထိရောက်စွာလုပ်ဆောင်နိုင်ပြီး 0 န်ဆောင်မှုခံယူသူများအတွက်ဝန်ထုပ်ဝန်ပိုးကိုလျှော့ချနိုင်သည်။ လက်တွေ့ကျသောအပလီကေးရှင်းများအနေဖြင့် filtering အခြေအနေများကိုချိန်ညှိနိုင်သည်။