Помогите с Обратной сортировкой смайлов

562
.
В 4 ветке идет все через foreach. Но там опять же вывод всех файлов без листинга!
.
# blackvj (28.12.2013 / 14:25)
Ибо финкция while перепереборку ключей в массиве делает.

А for как раз устанавливает лимиты на вывод результата?!
Да не если пое****ся, то можно и while ,но удобнее всего for
.
Krite, Я про это и говорю.... тогда вопрос след.

как это

while (list($key, $val) = each($fruits))

через

for

Записать???
.
blackvj
Я уже молчу за сортировку по алфавиту...тут бля по ключу понять так и не смог...

С этими свойствами OC....ппц
.
(\/)____o_O____(\/)
blackvj, старт можно брать с двига, а конец рассчитать можно
.
(\/)____o_O____(\/)
blackvj, $page = (isset($_GET['page']) && $_GET['page'] > 0) ? intval($_GET['page']) : 1;

$arr = range(1, 82); /* тест массив */
$n = 5; /* количество элементов на станицу */
$total = sizeof($arr); /* всего элементов , для базы это запрос */

$start = $page==1 ? 0 : ($page - 1) * $n;
$end = $page==ceil($total / $n) ? $total : $page * $n;

for ($i=$start;$i<$end;$i++) {
echo $arr[$i] . '<br/>';
}
.
Koenig, И так прописал так

$array = array(); // Разрешаем создание массива
$dir = opendir('../pers/' . $id);  // Открываем нужную папку

while (false !== ($file = readdir($dir))) {
if (($file != '.') && ($file != "..") && ($file != "name.dat") && ($file != ".svn") && ($file != "index.php") && ($file != "mini")) {
$array[] = $file;
}
}
closedir($dir);

$total2 = count($array);

$page = (isset($_GET['page']) && $_GET['page'] > 0) ? intval($_GET['page']) : 1;

 $arr = range(1, $total2); /* тест массив */
 $n = 10; /* количество элементов на станицу */
 $total = sizeof($arr); /* всего элементов , для базы это запрос */

 $start = $page==1 ? 0 : ($page - 1) * $n; 
 $end = $page==ceil($total / $n) ? $total : $page * $n;

 for ($i=$start;$i<$end;$i++) {
 echo $arr[$i] . '<br/>';
 }


На выходе показывает

1
2
3
4
...
10

И листинг из 4 страниц. Всего 39 файлов в $total2

При нажатии на 2-ю страницу ты всеравно переходишь на первую страницу.

Тоесть листинг при нажатии на страницы не работает!
.
Понял что проблема в

Десятичной навигации

echo '<div class="menu">' . pagenav('pers.php?act=cat&amp;id=' . $id . '&amp;', $start, $total, $kmess) . '<br/>';

Тоесть там страница через параметр $page

А здесь $start

Тогда нужно сам переход переделать под 4 ветку. У меня просто 3.2.2
.
blackvj
Портировал постраничную навигацию из 4 ветки в 3.2.2.

Спасибо большое Koenig. Твой алгоритм работает отлично. Как раз то что нужно!

Вопрос появился еще один.

Как сделать сортировку категорий по алфавиту?

С этим кодом она идет в разброс согласно OC.

$dir = glob($rootpath . 'pers/*', GLOB_ONLYDIR);
$total_dir = count($dir);

$end = $start + $kmess;
if ($end > $total_dir)
$end = $total_dir;
  
for ($i = $start; $i < $end; $i++) {
echo is_integer($i / 2) ? '<div class="list1">' : '<div class="list2">';
echo '<img src="../pers/' . $dir[$i] . '/mini/1.png" alt="' . htmlentities(file_get_contents($dir[$i] . '/name.dat'), ENT_QUOTES, 'utf-8') . '" /><br/><a href="pers.php?act=cat&amp;id=' . preg_replace('#^' . $rootpath . 'pers/#isU', '', $dir[$i], 1) . '">' . htmlentities(file_get_contents($dir[$i] . '/name.dat'), ENT_QUOTES, 'utf-8') . '</a> ('
. (int)count(glob($dir[$i] . '/*.png')) . ')</div>';
}

if ($total_dir > $kmess) {
echo '<div class="menu">' . pagenav('pers.php?', $start, $total_dir, $kmess) . '</div>';
}


Я так понял в этом случае функция for отпадает...нужен перебор...
.
Все имена тут в name.dat тоесть как то извечь инфу нужно с них и по ним сортировать!?
Всего: 34