Теперь поговорим о постраничном выводе информации из файла (подчеркиваю из файла) а не из базы данных :-)
Что меня натолкнуло написать эту статью? Вчера в аське мой друг Oles.pwl попросил объяснить ему, как организовать постарничный вывод из файла, вот я и держу свое обещание,
тока не для одного Oles.pwl, а для всех Вас товарисщи :-)
Сразу хочу сказать, код написан Manlix'ом я пишу только пояснения к нему, ну т.е. объясняю как его организовать, для непонятливых :-)
Допустим есть у Вас файл содержащий информацию такого вида
заголовок||статья
заголовок2||статья2
заголовок3||статья3
и так далее...
Тепрь сделаем это с выводом информации скажем по 5 на страничку, ну т.е. будем выводить по 5 строк инфы из файла
Скажем так
------------------------------------------------------
Заголовок статьи --- Тря ля ля ля ля лял
Сама статья --- Статетываывоаылвоал
------------------------------------------------------
Теперь приступим к самому приятному, кодингу :-)
Главный файл test.php
<?php
$base="base_file.txt"; // Файл где находиться инфа
$general=file($base); //Заносим весь наш файл в массив
$lines_file=file($base); //Еще разочек занесем наш файли в массив :-)
$lines=count($lines_file); //Считаем общее количество записей в файле, ну т.е. строк.
$pmessages = file("$base");
$onlyg=2; //Сколько записей выводить на страницу
/*
Тут начинаеться самая главная часть нашего файла
Просчитываем странички :-)
*/
if (@$page == "" or $page < 0) //Если переменная $page равна пустоте, или она меньше 0
{
$page = "1"; //Тогда переменнная $page=1
}
$first = count($pmessages) - ($onlyg * ($page - 1));
$second = count($pmessages) - ($onlyg * $page) + 1;
if ($second < 1)
{
$second = 1;
}
$pages = (int) ((count($pmessages) + $onlyg) / $onlyg); //Считаем общее количество страниц
for ($onlyg = 1; $onlyg <= $pages; $onlyg++) //Загоняем все в цикл, т.е. присваемваем переменно $onlyg значение
//1 и пока она меньше или равна $pages увеличиваем ее на единичку.
{
if ($onlyg != $page) //Если $olyg не равняется $page
{
//То наши ссылки имеют такой вид
$line .= "[ <a href=\"test.php?page=$onlyg\">$onlyg</a> ]";
}
if ($onlyg == $page) //А если равняеться
{
//То такой
$line .= "[ $onlyg ]"; //Ну т.е. в выводим не в виде ссылки ту страницу где сейчас находиться пользователь
}
}
/*
Теперь выводим саму информацию
*/
for ( $i = $first-1; $i >= $second-1; $i--)
{
list($zag,$sama)=explode("||", $general[$i]); //Считываем все из файла и разделяем данные при помощи explode а разделитель как вы помните у нас ||
$id = $i;
$id++;
echo "Заголовок статьи --- $zag<br> Сама статья --- $sama<br><hr>";
}
echo "$line<br>"; //Выводим ссылки
echo "Всего статей - <font color=red>$lines</font>."; //Выведем информацию пользователю о общем количестве записей
?>
Ну вот в принципе и все.
Автор статьи: Александр Лысенко [ http://www.Ekibastuz.de ]
Комментарии
|