Автор Тема: Вопрос по постраничному выводу  (Прочитано 5376 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ВиталиЧ

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Вопрос по постраничному выводу
« : 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";      } 
 


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

<?  $str="This chapter provides a series of brief lessons that guide you through the process of creating a simple static website using the visual authoring tools in Macromedia Dreamweaver MX.  For information on using the hand-coding tools in Dreamweaver.  See Editing code in Dreamweaver; for information on creating a database-driven dynamic web application, see.  This section provides instructions for two common system configurations—one where Windows 2000 or Windows XP Professional is installed on your hard disk.  And one where Windows 2000 or Windows XP Professional is installed on a remote computer.  If you don’t want to use these configurations, see Setting Up a Web Application. The following illustration shows the two configurations described in this section."$char_one_page=3;//строк на одну страницу $strArr=preg_split("(\\.\\s|\\.\\n)",$str); $lenstr=count($strArr); $page=ceil($lenstr/$char_one_page); $_GET[\'p\']=($_GET[\'p\'])?$_GET[\'p\']:1; $q=$_GET[\'p\']*$char_one_page; $tmp1=($_GET[\'p\']*$char_one_page)-$char_one_page; for($i=$tmp1;$i<$tmp1+$char_one_page;$i++){ echo queryLight($strArr[$i])."."; }  echo "<hr size=1>Продолжение: "; for($i=0;$i<$page;$i++){     echo "<a href=\\"?p=".(1+$i)."\\" style=\\"";     if((1+$i)==$_GET[\'p\'])echo "color:red;"; else echo "color:blue;";     echo "\\">".(1+$i)."</a> | "; }  function queryLight($str){ $q="code Professional the"; $qarr=explode(" ",$q); for($i=0;$i<count($qarr);$i++){ $str=preg_replace("/(".trim($qarr[$i]).")/i","<font style=\\"color:red;\\">$1</font>",$str); } return $str;  } ?> 

Заранее спасибо за пояснения!

Оффлайн zuko

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
Вопрос по постраничному выводу
« Ответ #1 : 07 Февраля 2009, 14:41:49 »
Код какой-то ненитабельный код вышел. Вы могли бы его разкомментировать?

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
Вопрос по постраничному выводу
« Ответ #2 : 22 Февраля 2009, 01:48:07 »
Попробуй использовать
$file = array_slice ($file, $_GET[\'start\'], 5);
а через переменную ?start=5 (УРл) будешь передавать со какой страницы начинать.

Оффлайн ВиталиЧ

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Вопрос по постраничному выводу
« Ответ #3 : 22 Февраля 2009, 22:49:55 »
Из файла вида:

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

выгружаю по страницам, благо разобрался б/менее:
 
<?php 
$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 .= "[ <a href=\\"test.php?page=$onlyg\\">$onlyg</a> ]"

if (
$onlyg == $page//А если равняеться 

//То такой 
$line .= "[ $onlyg ]"//Ну т.е. в выводим не в виде ссылки ту страницу где сейчас находиться пользователь 




/* 

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

*/ 

for ( $i $first-1$i >= $second-1$i--) 

$mess explode("|",$general[$i]); 
$id $i
$id++; 
//ну а дальше уже выводим наши данные 
echo "<img src=\'img/mini/info.gif\' border=\'0\' width=\'14\' height=\'14\'> <font class=\'newsdate\'>$mess[0]</font>     <b>$mess[1]</b>
$mess[2]

\\n"





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

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





Вывожу по 5 на страницу... пишет внизу: ВСЕГО НОВОСТЕЙ 10, страниц - 3 (????!!!!)... хмммм...
+ при переходе на след. страницу, отображает, всё равно, последние 5 новостей

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Вопрос по постраничному выводу
« Ответ #4 : 23 Февраля 2009, 00:58:12 »
Чувствуется надрыв в этом всем. Искренность, кровью выписанные строки. Эх.

Оффлайн ВиталиЧ

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Вопрос по постраничному выводу
« Ответ #5 : 07 Марта 2009, 02:02:52 »
<?php 
$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 .= "[ <a href=\\"index.php?page=$onlyg\\" class=\'forw\'>$onlyg</a> ]"; 

if ($onlyg == $page) //А если равняеться 

//То такой 
$zline .= "[ <font class=\'forw\'><u>$onlyg</u></font> ]"; //Ну т.е. в выводим не в виде ссылки ту страницу где сейчас находиться пользователь 




/* 

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

*/ 
for ( $i = $first-1; $i >= $second-1; $i--) 

$mess = explode("|",$general[$i]);  

$id = $i; 
$id++; 
//ну а дальше уже выводим наши данные 
echo "<img src=\'img/mini/info.gif\' border=\'0\' width=\'14\' height=\'14\'> <font class=\'newsdate\'>$mess[0]</font>     <b>$mess[1]</b>
$mess[2]

\\n"; 


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

echo "<font class=\'txt\'>Новостей: <b>$lines</b></font></center>"; //Выведем информацию пользователю о общем количестве записей 
?> 


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

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


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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28