Файлы именуются порядковыми номерами, например, 0, 2, 100 и т.д.
//Установка значений переменных
$limit = 2; //Количество записей на страницу
$filecount = /* */ //Число файлов в каталоге
$start = ($_GET['id'] * $limit; //Стартовая страница
$end = $start + $limit; //Конечная страница
$pages = ceil($filecount / $limit); //Количество отображаемых страниц, округленных в большую сторону
for ($i = $start; $i <= $end-1; $ i++)
{
if (!is_file($i)) { continue; } //Используем для пропуска, если файла нет (напр.: 0,1,4,5)
echo $i,"<br>"; //Знаю, плохо, но для наглядности
}
Это что касается вывода самих записей. Теперь пагинатор:
for($i = 1; $i <= $pages; $i++)
{
echo $i; //Вывод *ссылок* конечно же, но опять же, для наглядности
}
Итак. В чем проблема?
А в том, что при удалении записи на той странице, которую я удалил, остается на одну запись меньше.
Например, имеем такую вот структуру (заголовки берутся из файлов и на самом деле представляют из себя файлы с 1 до 5)
Запись 1
Запись 2
Запись 3
Запись 4
Запись 5
Если разделить это согласно нашему лимиту, т.е по 2 записи на страницу, то выйдет такая картина:
Запись 1 Запись 3 Запись 5
Запись 2 Запись 4
Все пока хорошо.
Но если мы удалим "Запись 2", например, то получится вот такая картина:
Запись 1 Запись 3 Запись 5
Запись 4
Т.е удаление произошло, а вот смещение - нет.
Я ничего умнее не придумал, как изменить условие
if (!is_file($i)) { continue; }
на
if (!is_file($i)) { $end++; continue; }
Это стало подвигать записи вверх, однако возникла новая проблема.
А именно, что после удаления и смещения, последняя запись первой страницы оказывалась первой записью второй страницы.
Удалив все три записи на первой странице (тем самым сместится отображение на три позиции вверх, и перейдя на вторую страницу я лицезрел ту же картину, что и на первой странице.
Ох... постарался понятно пояснить, надеюсь, поймете.