2013-11-14 31 views
1

我已經在我的網站上安裝了一個腳本來顯示簡單的新聞文章。在後端有一個包含所有的數據庫的一個.csv外商投資企業 - 和前端包括該代碼的(雖然我已經改變了它,以適應自己的網站):將PHP輸出分割成多個頁面

<?php 
//get news class and array 
include_once('newsadmin/includes/newsTools.class.inc.php'); 
$newsTools  = new newsTools('csv/news.csv'); 
$news_headlines = $newsTools->getNewsArray(); 
//output news array as formatted html 
if (!count($news_headlines)>0){ 
    echo '<p>There are currently no news headlines.</p>'; 
}else{ 
    foreach ($news_headlines as $key => $item){ 
     list($news_id,$news_date,$news_title,$news_body) = $item; 
     $formatted_date = date('F j, Y, g:i a',$news_date); 
echo <<<HTML 
<a name="$news_id" id="$news_id"></a> 
<h3>$news_title</h3> 
$news_body 
<p><em>Posted: $formatted_date</em></p> 
<hr /> 
HTML; 
    } 
} 
?> 

我試圖找到一個解決方案將新聞結果分成多頁 - 每頁最多10條新聞。這顯然在頁面這樣的底部創建一組鏈接爲< 2 3>

我道歉,如果這是一個很大要求 - 但我搜羅谷歌已經和只拿出解決方案處理使用MYSQL的網站的問題,而我不是。

http://dev.pixxl.us/bwc/news.php

三江源。

+0

你需要設置一些變量來等你試過的限制? – putvande

回答

2

你必須研究分頁。工作流程應該是這樣的 1)你有多少物品? 2)你想每頁列出多少? 3)用1 & 2定義,你有多少頁? 4)你目前在哪一頁? 5)什麼數據集應該基於4顯示? 6)準備頁面鏈接

# number 1 
$total_items = count($news_headlines); 

# number 2 
$perpage = 10; 

# number 3 
$total_pages = ceil($total_items/$perpage); 

# number 4 (you have to decide on the _GET parameter you are going to use, like page.php?page=2 etc. 
$current_page = ($_GET['page'] == '') ? 1:$_GET['page']; 

# number 5 
$offset = ($current_page-1)*$perpage; 
$news_headlines = array_slice($news_headlines,$offset,$perpage); 

# number 6 
for ($i=1; $i<=$total_pages; $i++) echo '<a href="page.php?page='.$i.'">'.$i.'</a> ';