首页 > 解决方案 > 将分页页码设置为默认 url

问题描述

所以我设法在php中构建了一个工作分页系统。但我希望用户默认为所述分页的第一个页码,例如,如果有人点击类别 1,则 URL 将更改为此website.php?category=1我希望将其website.php?category=1&pagenumber=1作为默认 URL。

我想要这个的原因是我不必编写 2 个不同的查询:如果类别 isset 但没有页码,则为 1,如果两者都设置,则为 1。

function getNews()
{
    // check if category is get via URL
    if (isset($_GET["category"]) && is_numeric($_GET["category"]) && intval($_GET["category"])) {
        // bind get category to categoryId
        $categoryId = intval($_GET["category"]);
        // if category is 1
        if ($categoryId == 1) {
            try {
                $db = new Connection();

                $database = $db->openConnection();

                if (isset($_GET["pagenumber"]) && is_numeric($_GET["pagenumber"]) && intval($_GET["pagenumber"])) {
                    $pageNumber = intval($_GET["pagenumber"]);

                    $itemsPerPage = 9;

                    $offset = ($pageNumber - 1) * $itemsPerPage;

                    $stm = $database->query("SELECT * FROM blog where blog.Categoryid = $categoryId LIMIT 9 OFFSET $offset ");

                    $stm->execute();

                    $rowNews = $stm->fetchAll(PDO::FETCH_ASSOC);

                    $totalItems = $database->query("SELECT COUNT(*) FROM blog where blog.Categoryid = $categoryId")->fetchColumn();

                    $totalPages = intval(ceil($totalItems / $itemsPerPage));

                    $previousButton = ($pageNumber + 1) - $totalPages;

                    $nextButton = ($pageNumber) * $totalPages;

                    $pageIndex = 0;

这是我目前拥有的(我剪掉了分页系统,如果需要可以粘贴)。

//

这就是我生成类别选择的方式

<?php
        if (isset($_GET["category"])){
        $db = new Connection();

        $categoryId = $_GET["category"];

        $database = $db->openConnection();

        $stm = $database->query("SELECT * FROM category");

        $stm->execute();

        $fetchCategory = $stm->fetchAll(PDO::FETCH_ASSOC);

        foreach ($fetchCategory as $cats) {
            ?>
            <a class="dropdown-item" href="blog.php?category=<?php echo $cats["categoryid"]; ?>"><?php echo $cats["categorytitle"]; ?></a>
            <?php
        }
        ?>
        <?php
        }else{
            $categoryId = 1;
        }
        ?>
    </div>
</div>


<?php
$categoryId = -1;

if (isset($_GET["category"]) && intval($_GET["category"])) {
    $categoryId = intval($_GET["category"]);
    switch ($categoryId) {
        case 1:
            // do query for category id 1
            getNews();
            break;
        case 2:
            // do query for category id 2
            getEwarehouse();
            break;
        case 3:
            // do query for category id 3
            getPartners();
            break;
        default:
            ifnotNumeric();
            break;
    }
} else {
    ifnotSet();
}
?>

一些更一般的信息:

  1. 使用 PHP 7.3.9 运行 laragon 4.0.15
  2. 使用 HeidiSQL 10.2.0.5599
  3. 使用 PHPStorm 2019.2.2

如果您需要更多代码示例,我可以将它们粘贴进去。

标签: phpmysqlurlpagination

解决方案


推荐阅读