Здравствуйте! С php знаком не так уж и давно, вернее не углублялся особо далеко. Решил сделать небольшую новостную ленту под свои нужды, нашёл у вас замечательную статью по поводу постраничного вывода, слегка подправил её и установил себе, но всё же есть одна небольшая проблема - отмена ссылки на текущей странице. В оригинале кода, постоянно была не активна лишь ссылка "1", не смотря на какой странице я нахожусь. Собственно код ниже, с комментариями
PHP:
скопировать код в буфер обмена
<?PHP $total_articles_number = 79; //общее количество статей $articles_per_page=10; // количество статей на странице //получаем количество страниц $total_pages = ceil($total_articles_number/$articles_per_page); // запускаем цикл - количество итераций равно количеству страниц for ($i=0; $i<$total_pages; $i++) { // получаем значение $from (как $page_number) для использования в формировании ссылки $page_number=$i*$articles_per_page; // если $page_number (фактически это проверка того является ли $from текущим) не соответствует // текущей странице, // выводим ссылку на страницу со значением $from равным $page_number if ($page_number!=$from) echo "<a href='".$PHP_SELF."?from=".$page_number."'> ".($i+1). " </a>"; // иначе просто выводим номер страницы - данная строка необязательна, // пропустив ее вы просто получите линк на текущую страницу else echo $i+1; // если page_number - текущая страница - ничего не выводим (ссылку не делаем) } ?>
Можете ли подсказать, как и что с этим можно сделать?
Мой код (Отобразить)
PHP:
скопировать код в буфер обмена
echo '<a href="?page=1">1</a>';//отображение страницы "1" (ссылка), без этого её просто нет $totalarticles = $myrow[id];//Общее количество статей, значение из БД $amountarticles=10;//Количество новостей на странице $totalpages = ceil($totalarticles/$amountarticles); for($i=0; $i<$totalpages; $i++) { $pagelist=$i*$amountarticles; if ($pagelist!=$page) echo "<a href='".$_SERVER['PHP_SELF']."?page=" . ($i+1) . "'> " .($i+1). " </a>"; } //Код связанный с постраничным выводом, при работе отображается следующим образом www.site.name/index.php?page=1 if($pagelist == 1) { $pagenumb = 0; } elseif($pagelist != 1) { $pagenumb = $_GET['page']*10-10;//Код для отображения страниц вместо количества новостей на странице (тобишь не .../index.php?page=40 , а .../index.php?page=4) if($pagenumb < 0)//Предотвращение ошибки когда значение /?page=* будет равняться менее нуля (отрицательное число). { $pagenumb = 0; }; }else //предотвращение недоразумения в MySQL когда юзер переходит на www.site.domain/index.php { $pagenumb = 0; } $res=mysql_query("SELECT * FROM test ORDER by id LIMIT $pagenumb, $amountarticles"); { echo '<br>' . $aaa . '<br>' . $bbb . '<br>' . $ccc . '<br>'; }
(Отредактировано автором: 05 Января, 2015 - 17:00:19)
|