လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> nextורult () အဆင့်မြင့်မြင်ကွင်းများကို paging နှင့် sorting ပေါင်းစပ်ခြင်း

nextורult () အဆင့်မြင့်မြင်ကွင်းများကို paging နှင့် sorting ပေါင်းစပ်ခြင်း

gitbox 2025-05-06

MySQL databases များကိုစီမံခန့်ခွဲရန် PHP ကိုအသုံးပြုသောအခါ MySQLI extension မျိုးစုံကို အသုံးပြု. MySQLI extension ကိုအသုံးပြုလေ့ရှိသည်။ ဤ Multi-Statement query query ena ်ဌာန်းချက်တွင် Next_result () သည် developer များစုံစမ်းမှုတစ်ခုစီ၏ရလဒ်အစုကိုတဖြည်းဖြည်းချင်းဝင်ရောက်ခွင့်ပြုသည့်အလွန်အရေးကြီးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤအခြေခံ function အပြင် Next_result () သည် ရှုပ်ထွေးသောအခြေအနေများတွင် paging နှင့် sorting ကဲ့သို့သောအဆင့်မြင့်လုပ်ဆောင်မှုများကိုအကောင်အထည်ဖော်ရန်လည်းကူညီနိုင်သည်။

ဤဆောင်းပါးသည် Pagresult () ကို Pagination နှင့် Sorting တွင်မည်သို့အသုံးပြုရမည်ကိုပြသရန်အမှန်တကယ်ကုဒ်များကိုပေါင်းစပ်မည်, အထူးသဖြင့်ဒေတာအပိုင်းအစများအားတောင်းဆိုမှုတစ်ခုတည်းကိုဖြည့်စွက်လိုပါက,

Next_result () ကဘာလဲ။

Next_Result () သည် MySQLI အရာဝတ်ထုတွင်ဖော်ပြချက်အမြောက်အများပါ 0 င်သော query ရလဒ်များကိုလုပ်ဆောင်ရန်အသုံးပြုသောနည်းလမ်းဖြစ်သည်။ SQLs မျိုးစုံကိုကွပ်မျက်သည့်အခါပထမရလဒ်ကို စတိုး () သို့မဟုတ် use_result () နှင့် Next_result () နှင့် Next_result () မှတဆင့်ရရှိသောနောက်ရလဒ်သို့ပြောင်းရွှေ့ရန်အသုံးပြုသည်။

အခြေခံ syntax:

 $mysqli->next_result();

အဘယ်ကြောင့် paging နှင့် sorting ကိုအကောင်အထည်ဖော်ရန် Next_result () ကို အဘယ်ကြောင့်အသုံးပြု?

အသုံးချပရိုဂရမ်အများစုတွင်အများအားဖြင့် pagl quant query ကို ကန့်သတ်ချက် နှင့် အကန့်အသတ် ဖြင့်ပေးပို့ခြင်းဖြင့်ပြုလုပ်လေ့ရှိသည်။ သို့သော်တစ်ခါတစ်ရံတွင်ဖောက်သည်များနှင့်ဒေတာဘေ့စ်များအကြားအပြန်အလှန်ဆက်သွယ်မှုအရေအတွက်ကိုတိုးမြှင့်နိုင်ရန်သို့မဟုတ် 0 န်ဆောင်မှုခံယူသူများနှင့်ဒေတာဘေ့စ်များအကြားအပြန်အလှန်ဆက်သွယ်မှုအရေအတွက်ကိုလျှော့ချရန်နှင့်တစ်ပြိုင်နက်တည်းတွင် paged data blocks သို့မဟုတ်ကွဲပြားခြားနားသောအမျိုးမျိုးသောရလဒ်များကိုတစ်ပြိုင်နက်တည်းပေးပို့ချင်ပေမည်။ ဤသည်မှာ Next_result () သည် အသုံးဝင်သောနေရာဖြစ်သည်။

ဥပမာ - စာတိုဒေတာနှင့်စုစုပေါင်းမှတ်တမ်းများကိုတောင်းဆိုပါ

အသုံးပြုသူစာရင်းကိုဥပမာတစ်ခုအနေနှင့်ယူကြပါစို့။

  1. လက်ရှိစာမျက်နှာအတွက်ဒေတာ (sort နှင့်အတူ);

  2. စုစုပေါင်းမှတ်တမ်းများ (Pagination Navigation အတွက်) ။

 <?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}

$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$pageSize = 10;
$offset = ($page - 1) * $pageSize;
$sortColumn = isset($_GET['sort']) ? $_GET['sort'] : 'created_at';
$sortOrder = (isset($_GET['order']) && strtolower($_GET['order']) === 'asc') ? 'ASC' : 'DESC';

// မှတ်သားSQLသွင်းခြင်း,ဤနေရာတွင်အပြောင်းအလဲနဲ့ရိုးရှင်း
$sql = "
    SELECT id, username, email, created_at 
    FROM users 
    ORDER BY $sortColumn $sortOrder 
    LIMIT $offset, $pageSize;
    
    SELECT COUNT(*) as total FROM users;
";

if ($mysqli->multi_query($sql)) {
    // ပထမရလဒ် set:Paginated ဒေတာ
    if ($result = $mysqli->store_result()) {
        echo "<h3>လက်ရှိစာမျက်နှာအသုံးပြုသူစာရင်း</h3><ul>";
        while ($row = $result->fetch_assoc()) {
            echo "<li>{$row['username']} ({$row['email']})</li>";
        }
        echo "</ul>";
        $result->free();
    }

    // လာမယ့်ရလဒ်ကိုပြောင်းပါ:စုစုပေါင်းမှတ်တမ်းများ
    if ($mysqli->next_result()) {
        if ($countResult = $mysqli->store_result()) {
            $countRow = $countResult->fetch_assoc();
            $total = $countRow['total'];
            $countResult->free();

            $totalPages = ceil($total / $pageSize);
            echo "<p>အများအပြားရှိတတ်သော {$totalPages} စာမျက်နှာ,စုစုပေါင်းမှတ်တမ်းများ:{$total}</p>";
        }
    }
} else {
    echo "စုံစမ်းမှုမအောင်မြင်ပါ: " . $mysqli->error;
}

$mysqli->close();
?>

အဓိကအချက်များကိုဥပမာတွင်ပါ 0 င်သည်။

  • Multi_query () ကို sqls မျိုးစုံ execute လုပ်ရန်အသုံးပြုသည်။

  • ရလဒ်တစ်ခုစီကိုရယူရန် Store_Result () ကို သုံးပါ။

  • နောက်ရလဒ်သို့ပြောင်းရွှေ့ရန် Next_Result () ကို သုံးပါ။

  • sorting fields နှင့် sorting နည်းလမ်းများ sorting ကို dynonically ပံ့ပိုးပေး။

ပိုမိုရှုပ်ထွေးသောမြင်ကွင်းများ - Pagent Multiple Multiple Multiple Multiple Multages အမျိုးမျိုးဖြင့်ရယူပါ

ကျွန်ုပ်တို့သည် "ဖန်တီးထားသောအချိန်" နှင့် "sorted time" စံချိန်တွင် "sorted time" Record Record ကိုရယူလိုပါကဤအရာကိုကျွန်ုပ်တို့ရေးနိုင်သည်။

 $sql = "
    SELECT id, username, email FROM users ORDER BY created_at DESC LIMIT 0,10;
    SELECT id, username, email FROM users ORDER BY username ASC LIMIT 0,10;
";

နောက်ဒေတာတစ်ခုစီကိုပြောင်းလဲရန် Next_result () ကို သုံးပါ။

အကြံပေးချက်များ

  • SQL Injection ကိုရှောင်ကြဉ်ပါ။

  • ၎င်းကိုအသုံးမပြုမီ, ရလဒ်ပိုများများရှိမရှိဆုံးဖြတ်ပါ။

  • အကယ်. သင်၏ဒေတာဘေ့စ်အလွှာသည် (orm ကိုအသုံးပြုသကဲ့သို့) encapsulated လျှင် (Orm) ကို အသုံးပြု. နောက်ခံ SQL ကိုကိုယ်တိုင်ကိုယ်ကျလုပ်ဆောင်ရန်လိုအပ်လိမ့်မည်။

အကျဉ်းချုပ်

Next_result () သည် များသောအားဖြင့် multi-statement query query ရလဒ်များကိုလုပ်ဆောင်ရန်အသုံးပြုသည်, အချို့သောအခြေအနေများတွင်၎င်းသည်သင်၏စနစ်ကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်။ ထိရောက်စေနိုင်သည်။

ဒီဆောင်းပါးမှာဥပမာတွေကတော့အကောင်းဆုံးလုပ်နိုင်တဲ့စီးပွားရေးအခြေအနေမျိုးကိုသင်စဉ်းစားဖူးသလား။ နောက်တစ် ဦး ကပိုပြီးလိမ္မာပါးနပ်စွာ () ကို သုံးရန်ကြိုဆိုပါသည်။