• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Разбитие значений по страницам!!!

  • Автор темы Killer
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

Killer

Я взял пример с php.spb.ru он разбивает результаты по страницам, но мне бы хотелось узнать как сделать так чтобы если например результатов больше 10 страниц то выводилось вот так:
1 2 3 4 5 6.......15

Вот код который выводит по страницчно результаты:
for ($i=1; $i<=floor($all/$len); $i++)

echo "<a href=$PHP_SELF?z=search&all=$all&len=$len&".
"start=".(($i-1)*$len)."&s=".urlencode($s).">$i </a> ";
 
B

Belfisher

Как на ПХП это будет делается не буду писать, но алгоритм в общем опишу. Для начала находишь кол-во страниц ($num_pages). Ну пусть у тебя их будет 100 для точностию. Что хочу сделать. пускай выводит страницы таким образом 1 2 3 4 5...100. ввожу переменную, кол-во показываемых ссылок на страницы (назовём её $num), в данном случае 5. Допустим я нахожусь на станице номер один ($number), тогда в выводе ссылок на страницы запускаю щётчик от 1 до $num. Определяю номер текущей страницы (в нашем случае 1) и пишу:
Код:
if ($number!=1) {
?>
<a href="pages.php?number=1">1</a>...
<?
}
for ($i=1; $i<=$num; $i++) {
?>
<a href="pages.php?number=<? echo $number+$i ?>"><? echo $number+$i ?></a>
<?
}
?>
...<a href="pages.php?number=<? echo $num_pages ?>"><? echo $num_pages ?></a>
З.Ы. А вроде код не собирался писать, но пришлось :)
 
A

admin

Killer
Надо просто немного подумать. За тебя никто код писать не будет.
Могу только подать идею.
выводить надо первую страницу, потом сколько-то перед текушей, текушую, сколько-то после текущей, и последнюю.
Текущая определяется в $start.
Код:
// тут если надо - рисуем первую 
$pages = floor($all/$len); 
for($i=(($start-3)<0?0:*$start-3)); $i<=($start+3>$pages?$pages:$start+3); $i++){ 
// 
} 
// тут если надо - рисуем последнюю
КОд не запускал, это только идея

Так что ищи на hotscripts.com и иже с ним. Ключевое слово: pagination.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!