簡體   English   中英

PHP中的頁面分頁

[英]Page Pagination in PHP

拜托,我是PHP新手。 並且我構建了一個Web應用程序,其中包含指向5個以上頁面的頁面內容的大量鏈接。 數據庫工作正常,但是一旦我填充頁面,它們就無法出現在單個頁面上,因此我嘗試了頁面分頁。 現在要注意的是:我的代碼使我只能進入一個頁面,而不是指向一個頁面的10個頁面鏈接。 我已經檢查了網上可用的解決方案,而我的解決方案似乎很特殊,因此很難使代碼正常工作。

這是一個片段:

if (isset($_GET['id']) && filter_var($_GET['id'], FILTER_VALIDATE_INT, array('min_range' => 1))) {

    // Get the category title:
    $sql = 'SELECT category FROM categories WHERE id = ' . $_GET['id'];
    $result = $dbc->query($sql); // Use prepared statement instead
    if ($result->num_rows != 1) { // Problem!
        $page_title = 'Error!';

    $page_no = $_GET['id'];
    $no_of_records_per_page = 2;
    $offset = ($page_no - 1) * $no_of_records_per_page;
    // Get the number of total pages
    $sql = 'SELECT COUNT(*) FROM pages';
    $result = $dbc->query($sql);
    $total_rows = $result->fetch_array()[0];
    $total_pages = ceil($total_rows / $no_of_records_per_page);
    // Get the pages associated with this category:
    $query = 'SELECT id, title, description FROM pages WHERE category_id = ' . $_GET['id'] . ' ORDER BY date_created DESC LIMIT 5';
 $result = $dbc->query($query);
    if ($result->num_rows > 0) { // Pages available!

        // Fetch each record:
        while ($row = $result->fetch_assoc()) {

            // Display each record:
            echo "<div><h4><a href=\"page.php?id={$row['id']}\">{$row['title']}</a></h4><p>{$row['description']}</p></div>\n";

        } // End of WHILE loop.
} else { // No pages available.
        echo '<p>There are currently no pages of content associated with this category. Please check back again!</p>';
    }

} else { // No valid ID.
    $page_title = 'Error!';
    include ('./includes/header.html');
    echo '<p class="error">Sorry, this page does not exist.</p>';
} // End of primary IF.


?>

<ul class="pagination">
    <li><a href="page.php?id=1">First</a></li>
    <li class="<?php if($page_no <= 1){ echo 'disabled'; } ?>">
        <a href="page.php<?php if($page_no <= 1){ echo '#'; } else { echo "?id=".($page_no - 1); } ?>">Prev</a>
    </li>
    <li class="<?php if($page_no >= $total_pages){ echo 'disabled'; } ?>">
        <a href="page.php<?php if($page_no >= $total_pages){ echo '#'; } else { echo "?id=".($page_no + 1); } ?>">Next</a>
    </li>
    <li><a href="page.php?id=<?php echo $total_pages; ?>">Last</a></li>
</ul>
$sql = 'SELECT category FROM categories WHERE id = ' . $_GET['id'];

$page_no = $_GET['id'];

$query = 'SELECT id, title, description FROM pages WHERE category_id = ' . $_GET['id'] . ' ORDER BY date_created DESC LIMIT 5';

您是否打算將$ _GET ['id']用於頁碼和category_id? 這不是兩個單獨的變量嗎? 像:$ _GET ['id']代表類別ID,$ _GET ['page']代表頁碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM