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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    $number_of_posts = 1;
    $page_id = $_GET['page'];
    $all_posts_query = "SELECT * FROM `posts` WHERE status = 'publish'";
    $all_posts_run = mysqli_query($con, $all_posts_query);
    $all_posts = mysqli_num_rows($all_posts_run);
    $total_pages = ceil($all_posts / $number_of_posts);
    $posts_start_from = ($page_id - 1) * $number_of_posts;
    
    $query = "SELECT * FROM `posts` WHERE `status` = 'publish' ORDER BY id DESC LIMIT $posts_start_from, $number_of_posts";

    Задача: сделать паджинацию, выжрав максимум ресурсов сервера :))
    Сверхзадача: реализовать выборку по id с помощью LIMIT'а

    Запостил: DDDeeper, 11 Июня 2016

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

    • Пагинация с запросом всех постов? АХАХАХАХАХАХАХА ВОТ ЭТО ДОЛБОЕБ !!!!!
      Ответить
    • А как надо правильно сделать пагинацию-то?
      Ответить
      • Ну наверное как минимум в первом SQL-запросе получить кол-во записей, а не сами записи...
        Ответить
        • Кстати, сейчас во многих местах это количество даже не пытаются получать, чтобы сервер не дрочить зазря. Один хер почти все читают либо только первую/последнюю страничку либо по порядку...
          Ответить
      • SELECT COUNT(*) FROM [TABLE_NAME]


        а потом
        SELECT * FROM (
                SELECT ROW_NUMBER()OVER(ORDER BY ID)AS ID
                      ,ID
                FROM TABLE_NAME
        )AS tbl 
        WHERE ID > (index-1)*EntitiesOnPageCount AND ID <= index*EntitiesOnPageCount 
        ORDER BY tbl.ID
        Ответить
        • К вам в M$$QL limit так и не завезли?
          Ответить
          • Нет (

            Даже SKIP не завезли

            Но в подавляющем большинстве случает пишешь запрос через LINQ. так что сей запрос превращается в милое
            _objectSet.Skip(n).Take(k);
            Ответить
            • А оно потом во что-то типа твоего кода раскрывается, или тупо циклом двигает курсор?
              Ответить
              • Честно - хз. Скорее всего просто в код как уменя
                Ответить
            • > Нет
              чтоэ?
              10 лет назад в m$$ql было select top
              куда дели?
              Ответить

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