လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PDostatement နှင့်ပေါင်းစပ်ခြင်းဖြင့် Pagination Query ကိုမည်သို့ကိုင်တွယ်ရမည်နည်း :: Rowcount

PDostatement နှင့်ပေါင်းစပ်ခြင်းဖြင့် Pagination Query ကိုမည်သို့ကိုင်တွယ်ရမည်နည်း :: Rowcount

gitbox 2025-05-26

PHP တွင်ဒေတာဘေ့စ်လုပ်ငန်းများအတွက် PDO (PHP Data Obserts) ကိုအသုံးပြုခြင်းသည်အလွန်အသုံးများသောနည်းလမ်းဖြစ်သည်။ PDO မှပေးသော API မှတစ်ဆင့်ကျွန်ုပ်တို့သည်ဒေတာဘေ့စ်ဆက်သွယ်မှုများ, ဒေတာမေးမြန်းချက်များကိုပြုလုပ်သောအခါ Pagination Query သည်အလွန်အသုံးများသောလိုအပ်ချက်ဖြစ်သည်။ ဤဆောင်းပါးသည် PDostatement ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

PDostatement :: Rowcount ကဘာလဲ။

PDO တွင် PDostatement :: Rowcount နည်းလမ်းသည်လက်ရှိ SQL query မှထိခိုက်သောအတန်းအရေအတွက်ကိုပြန်ပို့သည်။ Select selections များအတွက် rowcount query ရလဒ်အတွက် Rowcount RIVE RIVE RIVE RIVE RIVE RIGHT RIGHTULE, စစ်ဆင်ရေးအတွက် estrovate , update သို့မဟုတ် ဖျက်ပစ်ရန်

Paging Query အတွက်စာမျက်နှာစုစုပေါင်းအရေအတွက်ကိုတွက်ချက်ရန်အတွက်စုံစမ်းမှုအခြေအနေများနှင့်ကိုက်ညီသောဒေတာဘေ့စ်တွင်စုစုပေါင်းမှတ်တမ်းများကိုကျွန်ုပ်တို့အများအားဖြင့်သိရန်လိုအပ်သည်။ PDostatement :: Rowcount သည်စုစုပေါင်းမှတ်တမ်းများရရှိရန်ရိုးရှင်းသောနည်းလမ်းဖြစ်သည်။

Pagination Query အတွက်အခြေခံအတွေးအခေါ်များ

Pagination Query ၏အခြေခံအယူအဆမှာ - အကန့်အ သတ်ဖြင့်သာစုံစမ်းမှု၏မှတ်တမ်းအကွာအဝေးကိုထိန်းချုပ်ရန်နှင့် အခြေအနေများ နှင့်ကိုက်ညီသောမှတ်တမ်းများကိုရယူရန် Rowcount ကို အသုံးပြုရန်နှင့်အခြေအနေများနှင့်ပြည့်စုံသောမှတ်တမ်းများကိုရယူရန်အတွက်စာမျက်နှာများစုစုပေါင်းအရေအတွက်ကိုတွက်ချက်ရန်။ ၎င်းသည်ဒေတာများကိုအသုတ်များတင်ခြင်းကိုနားလည်သဘောပေါက်နိုင်ပြီးဒေတာအမြောက်အများတင်ခြင်း၏ overhead ကိုလျှော့ချနိုင်သည်။

Pagination query အတွက်ဘုံအဆင့်များမှာအောက်ပါအတိုင်းဖြစ်သည် -

  1. စုစုပေါင်းမှတ်တမ်းများကိုရယူပါ ။ အခြေအနေများကို ဖြည့်ဆည်း ပေးနိုင်သည့်မှတ်တမ်းများကိုရှာဖွေပါ။

  2. စုစုပေါင်းမှတ်တမ်းများကိုတွက်ချက်ပါ ။ စုစုပေါင်းမှတ်တမ်းများအပေါ် အခြေခံ. စာမျက်နှာတစ်ခုစီတွင်ဖော်ပြထားသောမှတ်တမ်းအရေအတွက်ကို အခြေခံ. စာမျက်နှာစုစုပေါင်းအရေအတွက်ကိုတွက်ချက်ပါ။

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

နမူနာကုဒ်

အောက်တွင်ဖော်ပြထားသောရိုးရှင်းသော paging မေးမြန်းမှုအကောင်အထည်ဖော်မှုဥပမာတစ်ခုဖြစ်သည်။ ကျွန်ုပ်တို့တွင်အသုံးပြုသူ၏အခြေခံအချက်အလက်များပါ 0 င်သည့်ဒေတာဘေ့စ်စားပွဲ အသုံးပြုသူ ရှိသည်ဆိုပါစို့။ ကျွန်ုပ်တို့သည်စုစုပေါင်းမှတ်တမ်းများကိုရယူရန်နှင့် pagination query မှတစ်ဆင့်အချက်အလက်များကို 0 င်ရန် PDostatement :: Rowcount ကို အသုံးပြုပါမည်။

 <?php
// ဒေတာဘေ့စ် connection settings
$host = 'localhost';
$dbname = 'your_database';
$username = 'root';
$password = '';

// ဖန်တီး PDO နမူနာ
try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
    exit;
}

// လက်ရှိစာမျက်နှာနံပါတ်ကိုရယူပါ,default သည်ပထမဆုံးစာမျက်နှာဖြစ်သည်
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$limit = 10; // စာမျက်နှာတစ်ခုချင်းစီကိုပြသ 10 စံချိန်
$offset = ($page - 1) * $limit; // offset တွက်ချက်

// မှတ်တမ်းများစုစုပေါင်းအရေအတွက်ကိုရယူပါ
$stmt = $pdo->query("SELECT COUNT(*) FROM users");
$totalRecords = $stmt->fetchColumn(); // အသုံးပြု rowCount မှတ်တမ်းများစုစုပေါင်းအရေအတွက်ကိုရယူပါ
$totalPages = ceil($totalRecords / $limit); // စာမျက်နှာများစုစုပေါင်းအရေအတွက်ကိုတွက်ချက်ပါ

// လက်ရှိစာမျက်နှာ၏အချက်အလက်များကိုရယူပါ
$stmt = $pdo->prepare("SELECT * FROM users LIMIT :limit OFFSET :offset");
$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();

// လက်ရှိစာမျက်နှာပေါ်တွင် output ဒေတာ
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo 'ID: ' . $row['id'] . ' | Name: ' . $row['name'] . '<br>';
}

// output ကို paging သတင်းအချက်အလက်
echo "<br>Page $page of $totalPages<br>";

// output paging link
if ($page > 1) {
    echo '<a href="?page=' . ($page - 1) . '">Previous</a> ';
}

if ($page < $totalPages) {
    echo '<a href="?page=' . ($page + 1) . '">Next</a>';
}
?>

code parsing

  1. ဒေတာဘေ့စ်ဆက်သွယ်မှု - PDO မှတစ်ဆင့်ဒေတာဘေ့စ်ဆက်သွယ်မှုများကိုကျွန်ုပ်တို့ဖန်တီးသည်။

  2. စုစုပေါင်းမှတ်တမ်းများကိုရယူပါ ။ ပထမ ဦး စွာဒေ တာဘေ့စ်ရှိစုစုပေါင်းမှတ်တမ်းများကိုအသုံးပြုသူများမှရရှိသော (*) ကို ရွေးချယ်ပါ။

  3. Paging တွက်ချက်မှု - လက်ရှိစာမျက်နှာ $ စာမျက်နှာ နံပါတ်ကို အခြေခံ. Offset $ offset ကိုတွက်ချက်သည်။ စာမျက်နှာ $ ကန့်သတ်ချက် တွင်ဖော်ပြထားသောမှတ်တမ်းအရေအတွက်အရေအတွက် စာမျက်နှာများစုစုပေါင်းအရေအတွက်ကို CEILIL () function ကိုတွက်ချက်သည်။

  4. လက်ရှိစာမျက်နှာ၏အချက်အလက်များကိုမေးမြန်းပါ ။ လက်ရှိစာမျက်နှာ၏အချက်အလက်များကို ကန့်သတ်ချက် နှင့် offset မှတဆင့်အချက်အလက်များကိုမေးမြန်းပါ။

  5. Page Output : Pagent Link သည်စာမျက်နှာစုစုပေါင်းအရေအတွက်အပေါ်တွင် အခြေခံ. output ဖြစ်သည်။ အသုံးပြုသူများသည်ယခင်စာမျက်နှာသို့မဟုတ်နောက်စာမျက်နှာသို့ခုန်ရန်လင့်ခ်ကိုနှိပ်ပါ။

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

  • စွမ်းဆောင်ရည် optimization : ကြီးမားသောအချက်အလက်ပမာဏ၏ဖြစ်ရပ်များတွင်စုစုပေါင်းမှတ်တမ်းများရရှိရန် Rowcount ကို အသုံးပြု. စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်နိုင်သည်။ ဒေတာဇယားသည်အလွန်ကြီးမားသောအခါလိုအပ်သောအချက်အလက်များကိုသာရှာဖွေခြင်းနှင့် cache ကိုအသုံးပြုပြီးအခြား optimization ဖြေရှင်းချက်များကိုအသုံးပြုရန်စဉ်းစားနိုင်သည်။

  • SQL Injection Prevention : အထက်ဖော်ပြပါကုဒ်များတွင် SQL Injection ကိုရှောင်ရှားနိုင်စေရန်အတွက် SQL Queram မှ SQL Confercess ကို ကြိုတင်ပြင်ဆင်မှုများ နှင့် binparam ကို ကြိုတင်ရှာဖွေသည်။