လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MySQLI_STMT :: Pagination query ကိုအကောင်အထည်ဖော်ရန်ပြင်ဆင်ပါ

MySQLI_STMT :: Pagination query ကိုအကောင်အထည်ဖော်ရန်ပြင်ဆင်ပါ

gitbox 2025-05-28

MySQL အပေါ် အခြေခံ. PHP applications များဖွံ့ဖြိုးဆဲသည့်အခါစုံစမ်းမှုဆိုင်ရာအချက်အလက်များနှင့်အသုံးပြုသူအချက်အလက်များဆိုင်ရာအချက်အလက်များကိုအတွေ့အကြုံများတိုးတက်စေရန်အတွက်ကျွန်ုပ်တို့သည်များသောအားဖြင့်အချက်အလက်များကို 0 န်ဆောင်မှုပေးရန်အများအားဖြင့်ဓာတ်ပုံများရှာဖွေခြင်းကိုအသုံးပြုလေ့ရှိသည်။ SQL splicing နည်းလမ်းကိုတိုက်ရိုက် အသုံးပြု. MySQLI_STMMT :: ပြင်ဆင်ရန် အတွက် SQL Injection ကိုထိရောက်စွာကာကွယ်နိုင်ရုံသာမက Code of Rappinate နှင့်ပြုပြင်ထိန်းသိမ်းခြင်းကိုလည်းထိရောက်စွာတားဆီးနိုင်သည်။ MySQLI_STMT မှတစ်ဆင့် Pagination Quessial Query ကိုမည်သို့အကောင်အထည်ဖော်ရမည်နှင့် ပတ်သက်. ဤဆောင်းပါးကဤဆောင်းပါးကသင့်အားပိုမိုလေ့လာရန်သင့်အားစာကြီးများကိုဥပမာနှင့်ခွဲခြမ်းစိတ်ဖြာပါ။

1 ။ အခြေခံသဘောတရားများ

Pagination query ၏အဓိကအချက်မှာ SQL ၏ ကန့်သတ် အပိုဒ်တွင်တည်ရှိသည်။

 SELECT * FROM table_name LIMIT offset, page_size;

အတွက်

  • offset : မှဖတ်ရန်မှတ်တမ်းကိုညွှန်ပြ, offset ။

  • Page_Size - စာမျက်နှာတစ်ခုချင်းစီကိုဖော်ပြထားတဲ့မှတ်တမ်းအရေအတွက်။

MySQLI_STMT :: ပြင်ဆင်ရန်အတွက်ပြင်ဆင်ခြင်း function ကိုပြင်ဆင်ပါ။ ကန့်သတ်ထားသည့် အပိုဒ်၏ paraale ၏ parameters များသည် variasy များကိုတိုက်ရိုက်ချည်နှောင်။ မရပါကဤကန့်သတ်ချက်ကိုကျော်လွှားရန်လှည့်ကွက်အချို့ကိုအသုံးပြုရန်လိုအပ်သည်။

2 ။ ပြင်ဆင်မှု

  1. MySQLI extension ကိုသုံးပြီး preprocessing ထုတ်ပြန်ချက်များကိုဖွင့်ထားကြောင်းသေချာအောင်လုပ်ပါ။

  2. ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုထူထောင်ခဲ့သည်။

  3. အသုံးပြုသူများ ကဲ့သို့သောမေးမြန်းခြင်းအတွက်ဒေတာဇယားရှိပါသည်။

3 ။ Pagination query ကိုအကောင်အထည်ဖော်ခြင်း

အဆင့် 1 - ဒေတာဘေ့စ်ဆက်သွယ်မှုကိုတည်ဆောက်ပါ

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

အဆင့် 2: paging parameters တွေကိုသတ်မှတ်ပါ

 <?php
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$page_size = 10;
$offset = ($page - 1) * $page_size;
?>

အဆင့် 3. Preprocessing ထုတ်ပြန်ချက်များကိုရေးပါ

က န့်သတ် အပိုဒ်တွင် variasy များကတည်းက bind_param မှတဆင့်ခညျြနှောငျနိုငျသညျ, သို့သော်အခြားခြွင်းချက်သတ်မှတ်ချက်များကိုဖြည့်ဆည်းရန် ပြင်ဆင်ထား ဆဲဖြစ်သည်။

 <?php
$sql = "SELECT id, name, email FROM users ORDER BY id DESC LIMIT ?, ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("ii", $offset, $page_size);
$stmt->execute();
$result = $stmt->get_result();
?>

အဆင့် 4: output query query ကိုရလဒ်များ

 <?php
while ($row = $result->fetch_assoc()) {
    echo "<p>{$row['id']} - {$row['name']} - {$row['email']}</p>";
}
?>

အဆင့် 5: Paging Navigation Links

စုစုပေါင်းမှတ်တမ်းအရေအတွက်ကိုယူဆခြင်းသည် $ total_rowrows သည် variable viable_rows ဖြစ်သည်။ အောက်ပါနည်းလမ်းအတိုင်း paging link ကိုထုတ်လုပ်နိုင်သည်။

 <?php
$total_rows = 100; // များသောအားဖြင့်စုစုပေါင်းအရေအတွက်ကိုရရန်သီးခြားရှာဖွေရန်လိုအပ်သည်
$total_pages = ceil($total_rows / $page_size);

for ($i = 1; $i <= $total_pages; $i++) {
    echo "<a href='https://gitbox.net/userlist.php?page=$i'>1 ။ $i စာမျက်နှာ</a> ";
}
?>

4 ။ နမူနာကုဒ်ကိုဖြည့်ပါ

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

$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$page_size = 10;
$offset = ($page - 1) * $page_size;

$sql = "SELECT id, name, email FROM users ORDER BY id DESC LIMIT ?, ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("ii", $offset, $page_size);
$stmt->execute();
$result = $stmt->get_result();

while ($row = $result->fetch_assoc()) {
    echo "<p>{$row['id']} - {$row['name']} - {$row['email']}</p>";
}

$stmt->close();
$mysqli->close();
?>

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

MySQLI_STMMT ကိုအသုံးပြုပြီး Pagination Query ကိုအသုံးပြုပြီးအကောင်အထည်ဖော်ရန်အတွက်သော့ချက်မှာ MySQLI_STMT :: ပြင်ဆင်ရန် နှင့် parameter binding ၏ကန့်သတ်ချက်များကိုနားလည်ရန်ဖြစ်သည်။ က န့်သတ်ထားသည့် parameter သည် playneter ကိုမသုံးနိုင်ပေမဲ့လုံခြုံပြီးယုံကြည်စိတ်ချရသောအတုအယောင်များကိုအောင်မြင်ရန်ဂဏန်းအမျိုးအစားသတ်မှတ်ချက်များကိုချည်နှောင်ရန် Bind_param ကို အသုံးပြုနေဆဲဖြစ်သည်။ အမှန်တကယ်စီမံကိန်းများတွင်ဤနည်းလမ်းသည်ရိုးရာ string splicing ထက်ပိုမိုလုံခြုံမှုရှိပြီးပိုမိုလွယ်ကူသည်။ Page Navigation Logic နှင့်ပေါင်းစပ်ပြီးစနစ်၏အသုံးပြုသူအတွေ့အကြုံနှင့်စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်အပြည့်အဝထားသောဒေတာ display system ကိုတည်ဆောက်နိုင်သည်။