【发布时间】:2014-04-22 15:25:59
【问题描述】:
我正在为此创建一个新线程,因为我现在确实在某个地方。
我有一个寻呼系统,但是有一个问题。
我使用 DAO 和控制器。 事情是,我的第二页(我的分页系统)进入 index.php?page=2。这里的主要问题是,每当您转到 index.php 中不存在的页面时,它会自动重定向到 index.php。那里没有提到第 2 页,因为我不能提到那里的每一页,因为页面会增加,插入的项目越多。
这是我用于分页的整个代码:(已编辑)
<?php
$mysqli = new mysqli("localhost", "wanthave", "wanthavepass", "wanthave");
$count_mem = $mysqli->query("SELECT `id` FROM `wanthave_items`");
$rows = $count_mem->num_rows;
$perPage = 5; // items to be shown per page
$num_pages = ceil($rows / $perPage);
$visiblePages = 5; // if current page is 7 show: 5,6,7,8,9,...
$visibleOffset = ceil($visiblePages / 2) - 1; // number of pages to show on the left and on the right of the current page
// Where do you use this ???
// $start = $page == 1 ? 0 : (($page - 1) * $perPage);
if ($num_pages > 1) {
$first = $last = $pagesStr = '';
echo $first . $pageStr . $last;
}
foreach($items as $item) {
echo "<li>
<a href=\"index.php?page=item-detail&id={$item['id']}\">{$item['name']}</a>
</li>";
}
for ($n = 1; $n < ($num_pages + 1); $n++) {
echo "<a href='index.php?page=$n'>$n</a>";
if ($n < $num_pages) echo ", ";
}
?>
我的 index.php
<?php
session_start();
define('DS', DIRECTORY_SEPARATOR);
define('WWW_ROOT', __DIR__ . DS);
$routes = array(
'home' => array(
'controller' => 'Item',
'action' => 'index'
),
'register' => array(
'controller' => 'Users',
'action' => 'register'
),
'login' => array(
'controller' => 'Users',
'action' => 'login'
),
'logout' => array(
'controller' => 'Users',
'action' => 'logout'
),
'item-detail' => array(
'controller' => 'Item',
'action' => 'detail'
),
);
if(empty($_GET['page'])) {
$_GET['page'] = 'home';
}
if(empty($routes[$_GET['page']])) {
header('Location: index.php');
exit();
}
$route = $routes[$_GET['page']];
$controllerName = $route['controller'] . 'Controller';
require_once WWW_ROOT . 'controller' . DS . $controllerName . ".php";
$controllerObj = new $controllerName();
$controllerObj->route = $route;
$controllerObj->filter();
$controllerObj->render();
【问题讨论】:
标签: php controller pagination paging dao