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 () သည် MySQLI အရာဝတ်ထုတွင်ဖော်ပြချက်အမြောက်အများပါ 0 င်သော query ရလဒ်များကိုလုပ်ဆောင်ရန်အသုံးပြုသောနည်းလမ်းဖြစ်သည်။ SQLs မျိုးစုံကိုကွပ်မျက်သည့်အခါပထမရလဒ်ကို စတိုး () သို့မဟုတ် use_result () နှင့် Next_result () နှင့် Next_result () မှတဆင့်ရရှိသောနောက်ရလဒ်သို့ပြောင်းရွှေ့ရန်အသုံးပြုသည်။
အခြေခံ syntax:
$mysqli->next_result();
အသုံးချပရိုဂရမ်အများစုတွင်အများအားဖြင့် pagl quant query ကို ကန့်သတ်ချက် နှင့် အကန့်အသတ် ဖြင့်ပေးပို့ခြင်းဖြင့်ပြုလုပ်လေ့ရှိသည်။ သို့သော်တစ်ခါတစ်ရံတွင်ဖောက်သည်များနှင့်ဒေတာဘေ့စ်များအကြားအပြန်အလှန်ဆက်သွယ်မှုအရေအတွက်ကိုတိုးမြှင့်နိုင်ရန်သို့မဟုတ် 0 န်ဆောင်မှုခံယူသူများနှင့်ဒေတာဘေ့စ်များအကြားအပြန်အလှန်ဆက်သွယ်မှုအရေအတွက်ကိုလျှော့ချရန်နှင့်တစ်ပြိုင်နက်တည်းတွင် paged data blocks သို့မဟုတ်ကွဲပြားခြားနားသောအမျိုးမျိုးသောရလဒ်များကိုတစ်ပြိုင်နက်တည်းပေးပို့ချင်ပေမည်။ ဤသည်မှာ Next_result () သည် အသုံးဝင်သောနေရာဖြစ်သည်။
အသုံးပြုသူစာရင်းကိုဥပမာတစ်ခုအနေနှင့်ယူကြပါစို့။
လက်ရှိစာမျက်နှာအတွက်ဒေတာ (sort နှင့်အတူ);
စုစုပေါင်းမှတ်တမ်းများ (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();
?>
Multi_query () ကို sqls မျိုးစုံ execute လုပ်ရန်အသုံးပြုသည်။
ရလဒ်တစ်ခုစီကိုရယူရန် Store_Result () ကို သုံးပါ။
နောက်ရလဒ်သို့ပြောင်းရွှေ့ရန် Next_Result () ကို သုံးပါ။
sorting fields နှင့် sorting နည်းလမ်းများ sorting ကို dynonically ပံ့ပိုးပေး။
ကျွန်ုပ်တို့သည် "ဖန်တီးထားသောအချိန်" နှင့် "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 ရလဒ်များကိုလုပ်ဆောင်ရန်အသုံးပြုသည်, အချို့သောအခြေအနေများတွင်၎င်းသည်သင်၏စနစ်ကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်။ ထိရောက်စေနိုင်သည်။
ဒီဆောင်းပါးမှာဥပမာတွေကတော့အကောင်းဆုံးလုပ်နိုင်တဲ့စီးပွားရေးအခြေအနေမျိုးကိုသင်စဉ်းစားဖူးသလား။ နောက်တစ် ဦး ကပိုပြီးလိမ္မာပါးနပ်စွာ () ကို သုံးရန်ကြိုဆိုပါသည်။