За последние 24 часа нас посетили 72994 программиста и 1649 роботов. Сейчас ищут 911 программистов ...

Pagination

Тема в разделе "PHP и базы данных", создана пользователем FrenkProgrammer, 18 дек 2014.

  1. FrenkProgrammer

    FrenkProgrammer Новичок

    С нами с:
    12 июл 2014
    Сообщения:
    66
    Симпатии:
    0
    Удалено!
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  3. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    ????????????????????????????????????????? (O_O)
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  5. FrenkProgrammer

    FrenkProgrammer Новичок

    С нами с:
    12 июл 2014
    Сообщения:
    66
    Симпатии:
    0
    Как будет правельнее это затолкнуть в функцию?
    Код (PHP):
    1. $adjacents = 2;
    2. $limit = 19;
    3.  
    4. $count = количество информации)
    5.  
    6. $page = ceil(abs($_GET['page']));
    7. $start = ($page) ? ($page - 1) * $limit : 0;
    8.  
    9. if($page == 0) $page = 1;
    10. $prev = $page - 1;
    11. $next = $page + 1;
    12. $lastpage = ceil($count / $limit);
    13. $lpm1 = $lastpage - 1;
    14.  
    15. $pagination = '';
    16.  
    17. if($lastpage > 1) {
    18.     $pagination .= '<div align="center" style="padding: 35px 0 16px 0;border-top: 1px solid rgba(235,235,235,1);" class="pagination">';
    19.     $pagination .= ($page > 1) ?"<a href=\"{$url}?page={$prev}\"><</a>" : "<span class=\"disabled\"><</span>";    
    20.  
    21.     if($lastpage < 7 + ($adjacents * 2)) {
    22.         for($counter = 1; $counter <= $lastpage; $counter++) {
    23.             if($counter == $page)
    24.                 $pagination.= "<span class=\"current\">{$counter}</span>";
    25.             else
    26.                 $pagination.= "<a href=\"{$url}?page={$counter}\">{$counter}</a>";                    
    27.         }
    28.     }elseif($lastpage > 5 + ($adjacents * 2)) {
    29.         if($page < 1 + ($adjacents * 2)) {
    30.             for($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) {
    31.                 if($counter == $page)
    32.                     $pagination.= "<span class=\"current\">{$counter}</span>";
    33.                 else
    34.                     $pagination.= "<a href=\"{$url}?page={$counter}\">{$counter}</a>";                    
    35.             }
    36.             $pagination.= "...";
    37.             $pagination.= "<a href=\"{$url}?page={$lpm1}\">{$lpm1}</a>";
    38.             $pagination.= "<a href=\"{$url}?page={$lastpage}\">{$lastpage}</a>";        
    39.         }elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) {
    40.             $pagination.= "<a href=\"{$url}?page=1\">1</a>";
    41.             $pagination.= "<a href=\"{$url}?page=2\">2</a>";
    42.             $pagination.= "...";
    43.             for($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) {
    44.                 if($counter == $page)
    45.                     $pagination.= "<span class=\"current\">{$counter}</span>";
    46.                 else
    47.                     $pagination.= "<a href=\"{$url}?page={$counter}\">{$counter}</a>";                    
    48.             }
    49.             $pagination.= "...";
    50.             $pagination.= "<a href=\"{$url}?page={$lpm1}\">{$lpm1}</a>";
    51.             $pagination.= "<a href=\"{$url}?page={$lastpage}\">{$lastpage}</a>";        
    52.         }else{
    53.             $pagination.= "<a href=\"{$url}?page=1\">1</a>";
    54.             $pagination.= "<a href=\"{$url}?page=2\">2</a>";
    55.             $pagination.= "...";
    56.             for($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) {
    57.                 if($counter == $page)
    58.                     $pagination.= "<span class=\"current\">{$counter}</span>";
    59.                 else
    60.                     $pagination.= "<a href=\"{$url}?page={$counter}\">{$counter}</a>";                    
    61.             }
    62.         }
    63.     }
    64.     
    65.     $pagination .= ($page < $counter - 1) ?"<a href=\"{$url}?page={$next}\">></a>" : "<span class=\"disabled\">></span>";
    66.         
    67.     $pagination.= "</div>\n";        
    68. }
    69.  
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Ну аргументы функции подумай какие нужны и return результата
     
  7. FrenkProgrammer

    FrenkProgrammer Новичок

    С нами с:
    12 июл 2014
    Сообщения:
    66
    Симпатии:
    0
    Какбы дело в том мне интересно как правельно,
    я могу написать несколько способов но это может считатся косяком,
    вот хочу узнать как будет правельней,
    а то напишу а потом исправлять)
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Нет понятия правильно, идеал не достижим, главное чтобы работало и выполняло свои задачи, пока у тебя сайт посещают пару пару раз в секунду, то нет смысла оптимизировать.