-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

このようにuopを少しきれいにすることができれば、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」を使用する場合は、「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 に答える