-2

我有一个小问题,我想它来自这里:

if($thepage == "") {
    $strSQL = "SELECT * FROM Banlist LIMIT 0 , 15";
}
if($thepage == 2) {
    $strSQL = "SELECT * FROM Banlist LIMIT 15 , 30";
}
if($thepage == 3) {
    $strSQL = "SELECT * FROM Banlist LIMIT 30 , 45";
}
if($thepage == 4) {
    $strSQL = "SELECT * FROM Banlist LIMIT 45, 60";
}
if($thepage == 5) {
    $strSQL = "SELECT * FROM Banlist LIMIT 60 , 75";
}
if($thepage == 6) {
$strSQL = "SELECT * FROM Banlist LIMIT 75 , 90";
}
if($thepage == 7) {
    $strSQL = "SELECT * FROM Banlist LIMIT 90 , 105";
}
if($thepage == 8) {
    $strSQL = "SELECT * FROM Banlist LIMIT 105 , 120";
}

在我的浏览器中,在 PHP 代码的 HTML 部分之前,它向我显示了以下内容:

} } } } } } } } } } } } } } }

似乎是什么问题?

PS:我想编写一些代码,使我成为这样的页面浏览器:

(page: 1  2  3  4  5 ... LAST)
4

4 回答 4

2

尝试这个:

<?php
if(!isset($thepage) || ( $thepage==1 )) {
   $startLimit = 0;
} else {
   $startLimit = 15 * $thepage;
}

$strSQL = "SELECT * FROM Banlist LIMIT " . $startLimit . " , 15";
?>

简短而简单。

于 2012-06-27T10:12:53.537 回答
1

你可以像这样清理它,然后你就不需要if了。

$limitLength = 15;
$thepage = $thepage == ""? 1: $thepage;
$baseLimit = ($thepage-1) * $limitLength;
$strSQL = sprintf("SELECT * FROM BanList LIMIT %d, %d", $baseLimit, $limitLength;

但是我们需要查看整个页面才能了解这些大括号的来源

于 2012-06-27T10:14:04.267 回答
0

你的代码有一些问题……</p>

如果你想使用“if”而不是 case,你应该使用“elsif”……因为即使第一次检查是正确的,你也要使用服务器时间来检查其余的……</p>

我认为维护这样的东西会更容易:

$top = $thepage ? ($thepage - 1) * 15 : 0;
$strSQL = "SELECT * FROM Banlist LIMIT  $top, 15";

编辑:根据评论更正代码:P

于 2012-06-27T10:28:49.403 回答
0
$ENTRIES_PER_PAGE = 15;

$strSQL = 'SELECT * FROM banlist LIMIT '.($ENTRIES_PER_PAGE * (empty($thepage)? 0 : $thepage - 1)).', '.$ENTRIES_PER_PAGE;
于 2012-06-27T10:18:17.180 回答