1. PHP / Говнокод #10169

    +91

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    //Постраничная навигация
    $result77 = mysql_query("SELECT str FROM ..."); 
    $myrow77 = mysql_fetch_array($result77);
    $num = $myrow77["str"];
    
    // Извлекаем из URL текущую страницу
    @$page = $_GET['page'];
    
    // Определяем общее число сообщений в базе данных
    $result00 = mysql_query("SELECT COUNT(*) FROM ...");
    $temp = mysql_fetch_array($result00);
    $posts = $temp[0];
    
    // Находим общее число страниц
    $total = (($posts - 1) / $num) + 1;
    $total =  intval($total);
    
    // Определяем начало сообщений для текущей страницы
    $page = intval($page);
    // Если значение $page меньше единицы или отрицательно
    // переходим на первую страницу
    // А если слишком большое, то переходим на последнюю
    if(empty($page) or $page < 0) $page = 1;
    if($page > $total) $page = $total;
    // Вычисляем начиная с какого номера
    // следует выводить сообщения
    $start = $page * $num - $num;
    // Выбираем $num сообщений начиная с номера $start                                     
    $result_gb1 = mysql_query("SELECT * FROM . ORDER BY id DESC LIMIT $start, $num");
    $myrow_gb1 = mysql_fetch_array($result_gb1);
    $list = 1;
    
    switch($page)
    {
        case "2":
        $list = $num + 1;
        break;
        case "3":
        $list = $num * 2 + 1;
        break;
        case "4":
        $list = $num * 3 + 1;
        break;
        case "5":
        $list = $num * 4 + 1;
        break;
        case "6":
        $list = $num * 5 + 1;
        break;
        case "7":
        $list = $num * 6 + 1;
        break;
        case "8":
        $list = $num * 7 + 1;
        break;
    }

    Навигация по страницам, написанная человеком с гуманитарным складом ума...

    Запостил: Мартин, 02 Мая 2012

    Комментарии (9) RSS

    • Для человека с гуманитарным складом ума главное - комменты!
      Ответить
    • select . from .. group by ...
      таки интересно что скрывается за точками
      Ответить
    • Читаю так... думаю, все ничего... комментарии подробные - может, учебный пример... и вдруг хрясь!
      Ответить
    • А что должен делать свитч в конце? Вроде как получается $start+$num+1, но что это даёт?
      Ответить
      • Во, всё-таки оно меня сбило. :) Ошибся. Получается $start+1. В чём смысл этого телодвижения, как дальше используется? :) Чую, там тоже есть над чем похихикать. :)
        Ответить
    • Не думал, что при текущем обилии библиотек мне придётся самому писать "пейджер", но я ошибался. Кому интересно, кучка здесь:
      https://github.com/roman-kashitsyn/user-group/blob/master/app/views/tags/pager.html
      Ответить

    Добавить комментарий