2013-11-14 25 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> ';