2013-11-14 5 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>

Прошу прощения, если это много, чтобы спросить - но я тралил Google уже и только придумать решения которые занимаются проблемой для сайтов с использованием MYSQL, тогда как я не являюсь.

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

Thankyou.

+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> '; 
Смежные вопросы