2013-05-01 108 views
0

大家好我一直在教自己的分頁,但我有一個關於使用鏈接來查看下一組結果的一般問題。如何使用分頁鏈接

我可以使用下面的代碼在表中顯示數據。通過我的第二個代碼示例,我可以顯示鏈接,例如1,2,3,4下一步。數字會根據顯示的記錄數量而變化。雖然我按下鏈接查看結果的下一頁時出現問題。頁面重新加載但顯示相同的一組結果。任何援助或幫助將不勝感激。

下面的代碼用於計算記錄,併爲任何時候屏幕上顯示的記錄數設置一個變量。

<?   
$per_page = 4; 
$start = 0; 

$result = mysql_query("select * from blogentry WHERE approve = 'Y' order by timeleft ASC"); 

//count records 
$record_count = mysql_num_rows($result);   
//count max pages 
$max_pages = $record_count/$per_page; //may come out as decimal 

if (!$start) 
    $start = 0; 

$get = mysql_query("select * from blogentry WHERE approve = 'Y' order by timeleft ASC LIMIT $start, $per_page"); 

while ($row = mysql_fetch_assoc($get)) 
{ 
       $usn1 = $row['username']; 
       $tml1 = $row['timeleft']; 
       $bge1 = $row['blogentry']; 
       $irm1 = $row['ResponceMess']; 

echo "<table>" 
Table code intentionally left out 
echo "</table>" 

下面的代碼是用來顯示分頁雖然當鏈接被按下了相同的結果顯示:

//setup prev and next variables 
$prev = $start - $per_page; 
$next = $start + $per_page; 

if(!($start<=0)) 
echo "<a href'messages.php?start=$prev'>Prev</a>"; 
//set variable for first page 
$i=1; 

//show page numbers 
for ($x = 0; $x < $record_count; $x = $x + $per_page) 
{ 
if ($start != $x) 
echo " <a href='messages.php?start=$x'>$i</a> "; 
else 
echo " <a href='messages.php?start=$x'><b>$i</b></a> "; 
$i++; 
} 

//show next button 
if (!($start >= $record_count - $per_page)) 
    echo " <a href='messages.php?start=$next'>Next</a>";     
?> 
+0

分頁代碼如何看起來非常複雜......你會看到第一個'$ start = 0;'?不要以爲你想這..你也沒有趕上任何要求.. – dbf 2013-05-01 22:26:46

回答

1

您需要檢查$ _GET [「開始」]變量看如果它被設置。如果它被設置,然後使$ start = $ _GET ['start']。否則,您的查詢將始終以第一個結果開始,而不是從您想要的結果開始。你可以只添加類似:

$start = $_GET['start'] ? $_GET['start'] : 0 ; 

到你的頁面的頂部,而不是:

$start = 0; 

也該查詢:

$get = mysql_query("select * from blogentry WHERE approve = 'Y' order by timeleft ASC LIMIT $start, $per_page"); 

應該是:

$get = mysql_query("select * from blogentry WHERE approve = 'Y' order by timeleft ASC LIMIT $start, $start + $per_page"); 

這是因爲限制條款以我爲開始ndex和結束索引,而不是開始索引和所需記錄的數量。

+0

非常感謝您的幫助,工作一種款待 – user2141414 2013-05-01 22:37:22

1

的問題是,你是硬編碼$start var和你是不是retreiving從$ _GET價值......試了下:

$start = isset($_GET['start']) ? $_GET['start'] : 0; 

最清晰的瞭解:

if(isset($_GET['start'])) { 
     $start = $_GET['start']; 
    }else{ 
     $start = 0; 
    } 
+0

感謝您的意見,非常感謝 – user2141414 2013-05-01 22:39:10