如何使这段代码工作?

时间:2012-06-27 10:07:00

标签: php

我遇到了一些问题,我想这是来自这里:

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 个答案:

答案 0 :(得分:2)

试试这个:

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

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

简短而简单。

答案 1 :(得分:1)

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

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

但我们需要查看整个页面以查看这些大括号的来源

答案 2 :(得分:0)

$ENTRIES_PER_PAGE = 15;

$strSQL = 'SELECT * FROM banlist LIMIT '.($ENTRIES_PER_PAGE * (empty($thepage)? 0 : $thepage - 1)).', '.$ENTRIES_PER_PAGE;

答案 3 :(得分:0)

您的代码存在一些问题......

如果你想使用“if”而不是case,你应该使用“elsif”... as,即使第一次检查是正确的,你也可以使用服务器时间检查其余的...

我认为维持这样的事情会更容易:

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

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