ФорумПрограммированиеPHP для идиотов → Разделяем страницы на куски

Разделяем страницы на куски

  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 27 февраля 2008 г. 13:07

    Допустим есть вывод записей…на одной странице по 4-е записи…
    Если выводить все номера страниц…а если их 1000 то бугага…

    собственно хочу

    1 | 2 | 3 …

    если мы на 4й странице то

    … 4 | 5 | 6 …

    пробовал сделать при помощи array_chunk()

    потом ходить по ключам массива…тупо вроде…

    может есть более простое решение?
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 27 февраля 2008 г. 13:30, спустя 22 минуты 46 секунд

    Ну во-первых, если на 4-ой, то … 3 | 4 | 5 … тогда уже :)
    Во-вторых, номер страницы же как-то передается (гетом, например), вот от него и можно отталкиваться. $page - 1; $page; $page + 1 :)
    Останется только предусмотреть для первых и последних номеров.
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 27 февраля 2008 г. 23:09, спустя 9 часов 39 минут 40 секунд

    факи для кого пишут?
    http://pyha.ru/forum/topic/299.0
    все умрут, а я изумруд
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 28 февраля 2008 г. 9:56, спустя 10 часов 46 минут 35 секунд


    факи для кого пишут?
    http://pyha.ru/forum/topic/299.0

    md5, ты меня не так понял.

    Мне не надо выводить все страницы…т.е

    Начало Предыдущая 1 2 3 4 5 6 7 8 9 10 Следующая Конец

    А нужно делать лимит по страницам…т.е

    Предыдущие 3-и страницы 4 5 6 Следующие три страницы

    Вот…я придумал…работает…

    for($i=1; $i<=$pages; $i++){
    $array[$i] = $i;
    }

    $ChunkLimit = 3;

    $arrayChunk = array_chunk($array, $ChunkLimit);
    //print_r ($arrayChunk);

    if(!isset($_GET['chunk'])){
    $_GET['chunk'] = 0;
    }


    if($arrayChunk[($_GET['chunk']+1)]['0'] != 0){
    $nextChunk = '<a href="answers.html?page='.$arrayChunk[($_GET['chunk']+1)]['0'].'&chunk='.($_GET['chunk']+1).'">></a>';
    }

    if($arrayChunk[($_GET['chunk']-1)]['0'] != 0){
    $previousChunk = '&nbsp;<a href="answers.html?page='.($arrayChunk[($_GET['chunk']-1)]['0']+$ChunkLimit-1).'&chunk='.($_GET['chunk']-1).'"><</a>&nbsp;';
    }


    print $previousChunk;
    foreach($arrayChunk[$_GET['chunk']] as $key => $value){

    if($value != $page){
    print '<a href="?page='.$value.'&chunk='.$_GET['chunk'].'">'.$value.'</a>&nbsp;';
    }
    else{
    print '<a href="?page='.$value.'&chunk='.$_GET['chunk'].'"><b>'.$value.'</b></a>&nbsp;';
    }

    }
    print $nextChunk;


  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 28 февраля 2008 г. 10:26, спустя 29 минут 50 секунд

    Ну так в факе это и есть. Невнимательно читаешь ;)
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 28 февраля 2008 г. 11:29, спустя 1 час 2 минуты 50 секунд

    Дак как то коряво работает…лимит заданных "прыгает" чтоли

Пожалуйста, авторизуйтесь, чтобы написать комментарий!