2012-10-28 28 views
0

我有分頁問題。分頁查詢的PHP代碼是:建議與分頁

$ <? if (isset($_GET["page"])) { 

    $Page = preg_replace("/[^0-9]/","", $_GET["page"]); 
} else { 
    $Page = 0; 
} 
$limit  = 10; 
$StartFrom = $limit * $Page; 
$TotalFiles = mysql_num_rows(mysql_query("SELECT * FROM linkuri WHERE `categorie` = 'Afaceri' AND status = 1")); 
$TotalPages = floor($TotalFiles/$limit); ?> 

和代碼來顯示它:

$i = 0; while ($TotalPages >= $i) { echo '<a class="active imgf" style="opacity: 1;margin-bottom:3px; margin-top:3px;" href="afaceri.php?page='.$i.'">'.($i+1).'</a>';$i++;} 

問題是我試圖使顯示爲:PAGES: "BACK" 1 2 3 4 5 "NEXT"

+0

有一個優秀的視頻有關如何在此處執行此操作的教程:youtube.com/phpapplied – Norse

回答

2

首先,我想建議對您的查詢進行改進。要計算總的行使用:

SELECT count(*) as `totalpost` FROM linkuri WHERE `categorie` = 'Afaceri' AND status = 1 

然後,你做這樣的事情創建分頁:

$totalPost = 50; //Dummy total post 
$limit = 10; 

$pages = $totalPost/$limit; //Giving 5 

//Now we know there are five pages 
for($i=1; $i<=$pages; $i++) { 
    echo $i; // Better echo something like <a href="link">$i</a> 
} 

PS:這是一個非常基本的例子

你之後得到如何創建分頁效果,請查看本教程

How to paginate with PHP?

0

如果你不想執行與相同條件的兩個長的查詢,然後再考慮測試此:

SELECT SQL_CALC_FOUND_ROWS, * FROM foo WHERE bar ORDER BY ouch 

並在那之後

SELECT FOUND_ROWS() AS found 

首先查詢給你結果與您的條件和限制,第二個給所有記錄計數無限制