Вопрос по реализации

Статус
Закрыто для дальнейших ответов.

freeuser

Well-Known Member
Регистрация
11.01.2010
Сообщения
109
Столкнулся с проблемой. На сайте накопилось очень много новостей, и они в цикле выводятся вниз, страничка уже слишком длинная.

Каким образом можно сделать так, чтобы когда больше 10 новостей ... создавалась вторая страничка, после третья и так далее


примерно так...

1, 2, 3, вперед>>

Хотя бы примерный алгоритм нужен
 

trueW3C

Поклонник Yii
Регистрация
04.03.2009
Сообщения
847
Код:
<?php
$sql = 'SELECT COUNT(id) FROM news'; //Всего новостей

//...Выполнение запроса

$allowCount = $row['COUNT(id)']; //Всего новостей
$pageNum = 10; //Выводить на странице 10 новостей

$page = intval(substr($page, 4)); //Номер текущей станицы
$start = $page < 1 ? 0 : ($page - 1) * $pageNum;

$sql = 'SELECT ... LIMIT ' . $start . ', ' . $pageNum;

//...Выполнение запроса, вывод

//Вывод навигации по страницам
if($allowCount > $pageNum)
{
	$enpagesCount = @ceil($allowCount / $pageNum);
	$pages = '';
	
	if( $enpages_count <= 10 )
		for($j = 1; $j <= $enpagesCount; $j ++)
			if($j != $page)
				$pages .= '<a href="' . $link . $j . '">' . $j . '</a>';
			else
				$pages .= '<span>' . $j . '</span>';
	else
	{
		$start = 1;
		$end = 10;
		$nav_prefix = '... ';
		
		if($page > 0) 
		{
			if($page > 6)
			{
				$start = $page - 4;
				$end = $start + 8;
				
				if($end >= $enpagesCount)
				{
					$start = $enpages_count - 9;
					$end = $enpages_count - 1;
					$nav_prefix = '';
				}
				else $nav_prefix = '... ';
					
				if($start >= 2) 
					$pages .= '<a href="' . $link .'1">1</a>';
					
				for($j = $start; $j <= $end; $j ++)
					if($j != $page)
						$pages .= '<a href="' . $link . $j . '">' . $j . '</a>';
					else
						$pages .= '<span>' . $j . '</span>';
					
				if($page != $enpagesCount)
					if($j != $page)
						$pages .= '<a href="' . $link . $enpagesCount . '">' . $enpagesCount . '</a>';
					else
						$pages .= '<span>' . $enpagesCount . '</span>';
			
			}
		}
	}
}

echo $pages;
 

tigra60

Спасатель
Регистрация
10.12.2009
Сообщения
1 990
http://tigra60.kiev.ua/server/index.php?id=7
Удачи!
 
Статус
Закрыто для дальнейших ответов.
Верх Низ