Постраничный вывод

Статус
В этой теме нельзя размещать новые ответы.
coden, мне достаточно инклюдить только этот один файл?
Подскажи как в моем примере мне использовать этот класс.

Инфа в file.txt:
PHP:
Товар1|Описание1|Дата1|Автор1
Товар2|Описание2|Дата2|Автор2

index.php:
PHP:
include ("Pagination.php");
$files = file("files.txt");

foreach($files as $tovar)
{  
$line = explode('|', $tovar); 
$str =  "<tr><td>".$line[0]."</td><td>".$line[1]."</td></tr>"; 
}
 
Считываешь сколько у тебя товара (или делаешь отдельный файл в котором у тебя будет загоняться циферка количество товара при формировании файла товара)

file.txt
Товар1|Описание1|Дата1|Автор1
Товар2
|Описание2|Дата2|Автор2

***
Товар382|Описание2|Дата2|Автор2
kolvo.txt
Потом все просто. Выставляешь в константу сколько товара на страницу выводить и путем выборки из массива выводишь что нужно.

array_slice() возвращает последовательность элементов массива array , определённую параметрами offset и length.

Если параметр offset положителен, последовательность начнётся на расстоянии offset от начала array . Если offset отрицателен, последовательность начнётся на расстоянии offset от конца array .

Если в эту функцию передан положительный параметр length , последовательность будет включать length элементов. Если в эту функцию передан отрицательный параметр length , в последовательность войдут все элементы исходного массива, начиная с позиции offset и заканчивая позицией, отстоящей на length элементов от конца array . Если этот параметр будет опущен, в последовательность войдут все элементы исходного массива array , начиная с позиции offset .

Обратите внимание, что array_slice() сбрасывает ключи массива. Начиная с PHP 5.0.2 вы можете переопределить это поведение, установив параметр preserve_keys в TRUE.
 
У меня таблица рисуется с помощью foreach
PHP:
foreach($nfiles as $line) {
echo "<tr><td></td></tr>";
}
как можно сделать постраничный вывод строк?
Например по 20 строк на страницу.
примерно это будет так:
PHP:
$page=1;
if (isset($_GET['page'])==true AND ctype_digit($_GET['page'])==true AND $_GET['page']>$page) { $page=$_GET['page']; }
$start=($page-1)*20;
$stop=$page*20;
$i=0;foreach($nfiles as $line) {
    if ($i>=$start AND $i<$stop) {
        echo "<tr><td></td></tr>";
    }
    $i++;
}
мож гдето ошибки есть
 
  • Нравится
Реакции: NewS
Вобщем, с горем пополам сделал, немного изменив вариант, который предложил BvzBvz в статье:

И кое что взял из сообщения dirtymax.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху