Forum Webscript.Ru

Программирование => PHP => Тема начата: ВиталиЧ от 05 Февраля 2009, 00:18:05

Название: Вопрос по постраничному выводу
Отправлено: ВиталиЧ от 05 Февраля 2009, 00:18:05
В конце концов нашёл для себя оптимальный формат хранения данных в файле:

1x|2z|3y

| - соотв. как разделитель.

Необходима помощь - я никак не могу допереть, скажем, как к моему скрипту вывода можно прикрутить постраничный вывод.

Мой код:

$file = file("filename.txt");
$file = array_reverse($file);
$str = 5;   //запускаем цикл, который сделает то количество //итераций, которое мы указали в $str  
for ($i = 0; $i < $str; $i++)      {  //создаем массив из строки, разбивая ее указанными в файле символами "|".
$mess = explode("|",$file[$i]);
 echo "1 - $mess[0], 2 - $mess[1], 3 - $mess[2], 4 - $mess[3] \\n";      }
 

К нему хотелось бы прикрутить (или иным методом реализовать постраничн. вывод) сей код, нешёл не так давно:

Продолжение: "; for($i=0;$i<$page;$i++){     echo "".(1+$i)." | "; }  function queryLight($str){ $q="code Professional the"; $qarr=explode(" ",$q); for($i=0;$i$1",$str); } return $str;  } ?>  

Заранее спасибо за пояснения!
Название: Вопрос по постраничному выводу
Отправлено: zuko от 07 Февраля 2009, 14:41:49
Код какой-то ненитабельный код вышел. Вы могли бы его разкомментировать?
Название: Вопрос по постраничному выводу
Отправлено: andymc от 22 Февраля 2009, 01:48:07
Попробуй использовать
$file = array_slice ($file, $_GET[\'start\'], 5);
а через переменную ?start=5 (УРл) будешь передавать со какой страницы начинать.
Название: Вопрос по постраничному выводу
Отправлено: ВиталиЧ от 22 Февраля 2009, 22:49:55
Из файла вида:

Один|Два|Три

выгружаю по страницам, благо разобрался б/менее:
 
$base="news/news.txt"; // Файл где находиться инфа

$general=file($base); //Заносим весь наш файл в массив

$lines_file=file($base); //Еще разочек занесем наш файли в массив  

$lines=count($lines_file); //Считаем общее количество записей в файле, ну т.е. строк.

$pmessages = file("$base");

$onlyg=5; //Сколько записей выводить на страницу

/*

Тут начинаеться самая главная часть нашего файла
Просчитываем странички  

*/

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 .= "[ $onlyg ]";
}
if ($onlyg == $page) //А если равняеться
{
//То такой
$line .= "[ $onlyg ]"; //Ну т.е. в выводим не в виде ссылки ту страницу где сейчас находиться пользователь
}
}


/*

Теперь выводим саму информацию

*/

for ( $i = $first-1; $i >= $second-1; $i--)
{
$mess = explode("|",$general[$i]);
$id = $i;
$id++;
//ну а дальше уже выводим наши данные
echo " $mess[0]     $mess[1]
$mess[2]

\\n";


}

echo "$line
"; //Выводим ссылки

echo "Всего статей - $lines."; //Выведем информацию пользователю о общем количестве записей
?>

 



Вывожу по 5 на страницу... пишет внизу: ВСЕГО НОВОСТЕЙ 10, страниц - 3 (????!!!!)... хмммм...
+ при переходе на след. страницу, отображает, всё равно, последние 5 новостей
Название: Вопрос по постраничному выводу
Отправлено: hanslinger от 23 Февраля 2009, 00:58:12
Чувствуется надрыв в этом всем. Искренность, кровью выписанные строки. Эх.
Название: Вопрос по постраничному выводу
Отправлено: ВиталиЧ от 07 Марта 2009, 02:02:52
$base="news/news.txt"; // Файл где находиться инфа

$general=file($base); //Заносим весь наш файл в массив

$lines_file=file($base); //Еще разочек занесем наш файли в массив :-)

$lines=count($lines_file); //Считаем общее количество записей в файле, ну т.е. строк.

$pmessages = file("$base");

$onlyg=5; //Сколько записей выводить на страницу

/*

Тут начинаеться самая главная часть нашего файла
Просчитываем странички :-)

 
*/
$page=($_GET[\'page\']);
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
{
//То наши ссылки имеют такой вид
$zline .= "[ $onlyg ]";
}
if ($onlyg == $page) //А если равняеться
{
//То такой
$zline .= "[ $onlyg ]"; //Ну т.е. в выводим не в виде ссылки ту страницу где сейчас находиться пользователь
}
}


/*

Теперь выводим саму информацию

*/
for ( $i = $first-1; $i >= $second-1; $i--)
{
$mess = explode("|",$general[$i]);  

$id = $i;
$id++;
//ну а дальше уже выводим наши данные
echo " $mess[0]     $mess[1]
$mess[2]

\\n";


    }  
echo "
$zline
"; //Выводим ссылки

echo "Новостей: $lines
"; //Выведем информацию пользователю о общем количестве записей
?>


разобрался. все работает.

Остался только 1 вопрос, изучение которого уже заняло у меня 1,5 безрезультатных часа...
Хотелось бы считать (и выводить) только непустые строки...


Заранее Спасибо.