2012-06-27 76 views
-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) 
+3

使用這種測試的'之開關語句。 http://www.php.net/manual/en/control-structures.switch.php –

+2

發佈代碼的其餘部分將會很有幫助,因爲這樣不會給我們帶來太多的好處。就我所能看到的代碼而言,沒有任何問題,因此必須是其他代碼中的其他位置。 –

+0

我,我是一個oracle,我想這個問題來自別處。順便說一句:試試[一個開關](http://php.net/control-structures.switch.php)。 – feeela

回答

2

試試這個:

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

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

簡短。

+0

這意味着頁面1從項目15開始,但是 –

+0

哦......對不起,改變了它。 –

1

你可以這樣清理它,然後你就不需要if了。

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

但是我們需要看到整個頁面上看到這些括號從

0
$ENTRIES_PER_PAGE = 15; 

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

有一些問題,你的代碼來了...

如果你想使用「如果「而不是案件,你應該使用」elsif「...因爲,即使第一個檢查是正確的,你使用服務器時間來檢查其餘的...

我認爲這將是更容易維護這樣的事情:

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

編輯:糾正根據註釋代碼:P

+0

你是$底部是指定的最高記錄,當語法實際需要的記錄數量,所以總是15 –

+0

你是對的...我糾正了代碼,謝謝! –