Постраничный вывод текстовой базы данных?!

vladax

Новичок
Постраничный вывод текстовой базы данных?!

Люди! Помогите.

Как осуществить постраничный вывод из текстового файла?

Данные в строках файла как обычно разделены слэшами.:confused:
 

Unregistered

Guest
Так же как и из базы.
Загружать в массив, показывать от n до (n+k) или sizeof - сто ближе... от странице к странице передавать n...
 

RomikChef

Guest
а какая проблема?
читаешь в массив, передаешь номер строки, с которой читать и в цикле от этого числа+кол-во строк выводишь.
 

vladax

Новичок
Cпасибо. Но для примера оставьте коротенький скриптец, если не сложно... Плиз...
 

[VS]

Guest
давай, ты составишь, проверишь, если не будет работать, задашь конкретный вопрос, а?
 

Tagore

Guest
<?php
function ShowNav($ArticleId, $Page)
{

$nav = "";
$nResult = mysql_query("select pk_apId from tbl_ArticlePages where apArticleId = '$ArticleId'");
$numRows = mysql_num_rows($nResult);
$i = 1;

echo "<div align='right'>";
echo "<span class='Text3'>Article Pages: &nbsp;</span>";
echo "<span class='BlackSmall'>";

if($Page > 1)
$nav .= "<a href='articles.php?articleId=$ArticleId&page=" . ($Page-1) . "'><span class='BodyHeading1'>« Prev</span></a> | ";

while($nRow = mysql_fetch_row($nResult))
{
if($i == $Page)
$nav .= "<span class='Text3'>" . $i++ . "</span> | ";
else
$nav .= "<a href='articles.php?articleId=$ArticleId&page=" . $i . "'><span class='BodyHeading1'>" . $i++ . "</span></a> | ";
}

if($Page < $numRows)
$nav .= "<a href='articles.php?articleId=$ArticleId&page=" . ($Page+1) . "'><span class='BodyHeading1'>Next »</span></a>";

if(substr(strrev($nav), 1, 1) == "|")
$nav = substr($nav, 0, strlen($nav)-3);

echo "$nav</span>&nbsp;&nbsp;</div>"; ?>
 

RomikChef

Guest
влад, ты можешь внятно сказать - какие у тебя проблемы?
ты НЕ постраничный вывод можешь сделать?
 

wanderer

PHP - rulez!...
PHP:
function raund_pages($pages) {
  list($page, $min) = explode(".", $pages);
  if ($min > 0) {
    return $page + 1;
  } else {
    return $page;
  }
}

for ($c=0;$c<1200;$c++){
  $posts[$c]="post$c";
}

$all_pages = raund_pages(count($posts) / 10);
echo "Всего страниц: $all_pages<Br>\r\n";
if (!isset($page)) { $page = 0; }
if ($page) { $bp = $page - 1; echo "<A Href=$PHP_SELF?page=$bp><< назад</A> |"; }

for ($c = 0; $c < $all_pages; $c++) {
  $sc = $c + 1;
  if ($all_pages < 7) {
    if ($c == $page) {
      echo " $sc |";
    } else {
      echo " <A Href=$PHP_SELF?page=$c>$sc</A> |";
    }
  } else {
    if ($c == $page) {
      if ($c - 1 > 1 and $c < $all_pages - 1) {
        $bc = $c - 1;
        $bsc = $sc - 1;
        echo " <A Href=$PHP_SELF?page=$bc>$bsc</A> |";
      }
      echo " $sc |";
      if ($c + 1 < $all_pages - 2 and $c > 0) {
        $fc = $c + 1;
        $fsc = $sc + 1;
        echo " <A Href=$PHP_SELF?page=$fc>$fsc</A> |";
      }
      if ($c < $all_pages - 4 and $c + 1 != 1) {
        echo " ... |";
      }
    } else {
      if ($c < 2 or $c > $all_pages - 3) {
        echo " <A Href=$PHP_SELF?page=$c>$sc</A> |";
        if ((($c == 1 and $page > 2) or ($c - 1 == 0)) and $page != 2 and $c + 2 != $page) {
          echo " ... |";
        }
      }
    }
  }
}

if ($page < $all_pages - 1) { $fp = $page + 1; echo " <A Href=$PHP_SELF?page=$fp>вперёд >></A>"; }

echo "<Br>\r\n";
for ($c = $page * 10; $c < $page * 10 + 10; $c++) {
  echo "$posts[$c]<Br>\r\n";
}
 

wanderer

PHP - rulez!...
самому как то надо было, взял на написал... а вообще тут НЕ ПИШУТ СКРИПТЫ!!! (ну если токо за $ или у кого хорошее настроение) тут помогают разобраться почему не работает!!!
вот так!
 

RomikChef

Guest
вандерер, ты конечно, молодец и заработал благодарность всего угнетенного народа Ботсваны.
а в РНР появится еще один ламер, который не умеет ничего делать, а умеет только попрошайничать.

Пара замечаний.
слово "округлить" пишется по-английски "rOund", через "o"

вместо вот этого ужаса
function raund_pages($pages) {
list($page, $min) = explode(".", $pages);
if ($min > 0) {
return $page + 1;
} else {
return $page;
}
}
$all_pages = raund_pages(count($posts) / 10);

можно написать
$all_pages = ceil(count($posts) / 10);

наверняка и в остальном тексте такие же ляпы.
Я бы на твоем месте вообще постыдился такой код выкладывать.
 

wanderer

PHP - rulez!...
спасибо на добром слове, но я этот код писал ДАВНО, когда токо начинал писать на РНР.
 

SeazoN

Guest
Хм... Странноватый скриптец
Особенно меня смутили эти места
PHP:
list($page, $min) = explode(".", $pages);
PHP:
for ($c=0;$c<1200;$c++){
???
Дальше сил нет. Последнее что в голову приходит - скачайте http://phpbb.com/ функцию чёта-там *pagination
 

wanderer

PHP - rulez!...
2 строка: это я для примера масив данными забиваю точно также моно и файл
 
Сверху