php - 将分页页码设置为默认 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();
}
?>
一些更一般的信息:
- 使用 PHP 7.3.9 运行 laragon 4.0.15
- 使用 HeidiSQL 10.2.0.5599
- 使用 PHPStorm 2019.2.2
如果您需要更多代码示例,我可以将它们粘贴进去。
解决方案
推荐阅读
- c# - 如何在 Unity 中单击时从十六进制地图中获取坐标
- css - 在移动设备中重新排序列
- react-native - 抽屉导航器的 contentComponent 内的 stackNavigator
- ionic3 - 如何从 google fit/android 获取我的 ionic 应用程序中的睡眠数据作为睡眠?
- python - 调整大小时 Python OpenCV 图像打乱
- php - 计算数据库中的某些行并仅显示该列中大于 0 的值
- google-apps-script - 如何通过每月列名称 GoogleSheet 将数据从宽到长重塑
- python - 无法在 ipython 项目上使用 matplotlib.pyplot 显示图像
- image-processing - Three.js 中的 Inter_area 纹理 minFilter 是否像 opencv 中一样?
- java - java - 如何使用Java Swing手动控制哪个线程进入临界区?