လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> New query Reply Paging Lagic ကိုအကောင်အထည်ဖော်ရန် Next_Result () ကိုသုံးပါ

New query Reply Paging Lagic ကိုအကောင်အထည်ဖော်ရန် Next_Result () ကိုသုံးပါ

gitbox 2025-05-02

ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PHP ကိုအသုံးပြုသောအခါတစ်ခါတစ်ရံကျွန်ုပ်တို့သည်အချို့သောစုံစမ်းမှုများကိုအကောင်အထည်ဖော်ရန်နှင့်ဤမေးမြန်းချက်များ၏ရလဒ်များကိုလုပ်ဆောင်ရန်လိုအပ်သည်။ ရှုပ်ထွေးသောမေးမြန်းချက်အချို့အတွက်ကျွန်ုပ်တို့သည်မေးမြန်းခြင်းများစွာဖြင့်ပြန်လာသည့် paging ယုတ္တိဗေဒကိုအသုံးပြုရန်လိုအပ်နိုင်သည်။ နောက် function သည်ဤကဲ့သို့သောမြင်ကွင်းတွင်အလွန်အသုံးဝင်သည်။ အထူးသဖြင့်စာနာထောက်ထားမှုလိုအပ်သည့်အခါမေးမြန်းချက်မျိုးစုံ၏ရလဒ်များကိုထိရောက်စွာလုပ်ဆောင်ရန်၎င်းသည်ကျွန်ုပ်တို့အားကူညီသည်။

Next_result () function ကဘာလဲ။

Next_Result () PHP ၏ MySQLI extension တွင် function တစ်ခုဖြစ်သည်။ မေးမြန်းချက်မျိုးစုံကိုကွပ်မျက်ခံရသည့်အခါတစ်ခုချင်းစီ၏ရလဒ်များကိုတစ်ခုစီ၏ရလဒ်များကိုရရန်ခွင့်ပြုသည်။ MySQLI_Multi_Query () function ကိုသုံးသောအခါ, query မျိုးစုံကို execute လုပ်သည့် function ကိုအသုံးပြုသောအခါ Next_result () သည် စုံစမ်းမှုတစ်ခုစီ၏ရလဒ်များကိုဖြတ်သန်းရန်ခွင့်ပြုသည်။

ပုံမှန်အားဖြင့် mysqli_multi_query () ကို SQL Query လုပ်ရန်အသုံးပြုသည်။ Next_result () သည် တစ်ခုချင်းစီ၏ရလဒ်များကိုတစ်ခုချင်းစီဖြင့်ရယူရန်နှင့်စာရင်းတစ်ခုစီတွင်အချက်အလက်များကိုရယူရန်ခွင့်ပြုသည်။

ကြည့်ရှုပါ

ကျွန်ုပ်တို့သည်စုံစမ်းမှုရလဒ်များမျိုးစုံကိုလုပ်ဆောင်သောအခါကျွန်ုပ်တို့သည် Pagination function ကိုလိုအပ်နိုင်သည်။ ဥပမာအားဖြင့်, paging query ရလဒ်များစွာရှိသည့်အခါ, ယခုအချိန်တွင် Next_result () သည် လာမည့်စုံစမ်းမှု၏ရလဒ်အစုကိုထိရောက်စွာခုန်ချခြင်းနှင့်ရှုပ်ထွေးမှုများနှင့်ပုံတူကူးယူခြင်းကိုရှောင်ရှားနိုင်သည်။

နမူနာကုဒ်

ကျွန်ုပ်တို့တွင်စာတိုအလိုက်ရှာဖွေမှုရလဒ်များစွာပါ 0 င်သောဒေတာဘေ့စ်ရှိသည်ဆိုပါစို့။

 <?php
// ဒေတာဘေ့စ်ဆက်သွယ်မှု
$mysqli = new mysqli("localhost", "username", "password", "database");

// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}

// စုံစမ်းမှုများကိုမျိုးစုံလုပ်ဆောင်ပါ
$query = "SELECT * FROM table1 LIMIT 10; 
          SELECT * FROM table2 LIMIT 10; 
          SELECT * FROM table3 LIMIT 10;";

if ($mysqli->multi_query($query)) {
    do {
        // ရလဒ်ကိုရယူပါ
        if ($result = $mysqli->store_result()) {
            // loop output ရလဒ်
            while ($row = $result->fetch_assoc()) {
                echo "ID: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
            }
            // ရလဒ်ကိုလွှတ်ပေးရန်
            $result->free();
        }
        
        // နောက်ရလဒ်ကိုရယူပါ
    } while ($mysqli->next_result());
}

// 关闭ဒေတာဘေ့စ်ဆက်သွယ်မှု
$mysqli->close();
?>

ခွဲခြမ်းစိတ်ဖြာကုဒ်

  1. ဒေတာဘေ့စ် connection : ပထမအချက်မှာ MySQLI () မှတဆင့်ဒေတာဘေ့စ်ဆက်သွယ်မှုအရာဝတ်ထု $ MySQLI ကိုဖန်တီးပြီးဒေသဆိုင်ရာဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ။

  2. စုံစမ်းမှုပေါင်းသင်းဆက်ဆံရေး - စုံစမ်းမှုများကိုအကောင်အထည်ဖော်ရန် Multi_query () function ကိုသုံးပါ။ ဤနေရာတွင်ကျွန်ုပ်တို့သည် (10) ခုကိုကန့်သတ်ချက် 10 ခုကိုကန့်သတ်ထားသည်။

  3. ရလဒ်တစ်ခုချင်းစီကိုရခြင်းတစ်ခုချင်းစီကို process : store_result () မှတစ်ဆင့် မေးမြန်းမှုတစ်ခုစီ၏ရလဒ်အစုကိုရယူပါ။

  4. Next_result () ကို သုံးပါ () - စုံစမ်းမှုရလဒ်တစ်ခုစီကိုနောက်ဆက်တွဲစုံစမ်းမှုရလဒ်ကိုခုန်ရန် နောက်ဆက်တွဲ () ကို ဆက်လုပ်ပါ။

  5. Close Database Connection : စစ်ဆင်ရေးပြီးစီးပြီးနောက်ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုပိတ်ပါ။

Paging ကိုဘယ်လိုအကောင်အထည်ဖော်ရမလဲ

အကယ်. ကျွန်ုပ်တို့သည်မေးမြန်းချက်မျိုးစုံ၏ရလဒ်များကိုရလဒ်များနှင့် ပတ်သက်. စာနာမှုဆိုင်ရာယုတ္တိဗေဒကိုအကောင်အထည်ဖော်လိုပါက Next_result () ပြီးနောက်စုံစမ်းမှုတစ်ခုစီ၏ရလဒ်များကိုကျွန်ုပ်တို့လုပ်ဆောင်နိုင်သည်။ ဥပမာအားဖြင့်, စုံစမ်းမှုတစ်ခုချင်းစီသည်မှတ်တမ်း 10 ခုကိုပြန်လည်ရောက်ရှိပါကအောက်ပါကုဒ်နှင့်ဆင်တူသောအချက်အလက်များကိုစာမျက်နှာဖြင့်ဖော်ပြနိုင်သည်။

 <?php
$perPage = 10; // စာမျက်နှာတစ်ခုအတွက်မှတ်တမ်းအရေအတွက်
$currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($currentPage - 1) * $perPage;

// ဒေတာဘေ့စ်ဆက်သွယ်မှု
$mysqli = new mysqli("localhost", "username", "password", "database");

// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}

// တစ် ဦး Pagination query ကိုလုပ်ဆောင်ပါ
$query = "SELECT * FROM table1 LIMIT $offset, $perPage;
          SELECT * FROM table2 LIMIT $offset, $perPage;
          SELECT * FROM table3 LIMIT $offset, $perPage;";

if ($mysqli->multi_query($query)) {
    do {
        // ရလဒ်ကိုရယူပါ
        if ($result = $mysqli->store_result()) {
            // loop output ရလဒ်
            while ($row = $result->fetch_assoc()) {
                echo "ID: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
            }
            // ရလဒ်ကိုလွှတ်ပေးရန်
            $result->free();
        }
        
        // နောက်ရလဒ်ကိုရယူပါ
    } while ($mysqli->next_result());
}

// 关闭ဒေတာဘေ့စ်ဆက်သွယ်မှု
$mysqli->close();
?>

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် offset ကိုပုံမှန်တွက်ချက်သည်, လက်ရှိစာမျက်နှာအရေအတွက်အရ,

မှတ်သားရန်အရာ

  1. Querial order : Next_result () ကို သုံးတဲ့အခါ () ကိုသုံးတဲ့အခါ, စုံစမ်းမှုအစဉ်အလာကအရမ်းအရေးကြီးတယ်။ သင်တစ် ဦး ချင်းစီစုံစမ်းမှု၏ရလဒ်များကိုမှန်ကန်သောနိုင်ရန်အတွက်လုပ်ဆောင်ရန်သေချာအောင်လုပ်ပါ။

  2. အရင်းအမြစ်စီမံခန့်ခွဲမှု - စုံစမ်းမှုရလဒ်တစ်ခုချင်းစီကိုလုပ်ဆောင်ပြီးနောက်အရင်းအမြစ်ကိုထုတ်လွှတ်ရန် အခမဲ့ () ကိုဖုန်းဆက်ရန်သတိရပါ။

  3. စွမ်းဆောင်ရည်စဉ်းစားတွေးခေါ်မှုများ - အချက်အလက်အမြောက်အများကိုအကောင်အထည်ဖော်ရန် Multi_query () ကို အသုံးပြုသောအခါအချက်အလက်ပမာဏသည်ကြီးမားလျှင်စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်နိုင်သည်။ ကျိုးကြောင်းဆီလျော်စွာအသုံးပြုခြင်းနှင့်တစ်ချိန်တည်းတွင်အချက်အလက်များစွာရှာဖွေခြင်းကိုရှောင်ရှားရန်သေချာပါစေ။

ကောက်ချက်

Next_result () function ကိုမှတစ်ဆင့်ကျွန်ုပ်တို့သည်စုံစမ်းမှုရလဒ်များ၏အကောင်အထည်ဖော်မှုကိုအလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။ ၎င်းသည်အခြေအနေအမျိုးမျိုးကိုကွပ်မျက်ရန်လိုအပ်သည့်အခြေအနေမျိုးစုံနှင့်စုံစမ်းမှုရလဒ်ကိုဖောက်ပြန်ရန်လိုအပ်သည်။ ဒီဆောင်းပါးမှာဖော်ပြထားတဲ့နမူနာကုဒ်ကဒီ function ကိုပိုကောင်းအောင်လုပ်ဖို့,