За последние 24 часа нас посетили 16922 программиста и 1646 роботов. Сейчас ищут 977 программистов ...

Получение записей определенными частями

Тема в разделе "MySQL", создана пользователем VLK, 18 мар 2014.

  1. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    К примеру, надо выводить новости, по 10 новостей на страницу, т.е. нужно получить допустим на первую страницу 1-10 записей, на вторую страницу 11-20 и т.д. как должен выглядеть такой запрос?
     
  2. vzun

    vzun Новичок

    С нами с:
    10 мар 2014
    Сообщения:
    9
    Симпатии:
    0
    а новости где хранятся?
     
  3. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Код (Text):
    1. SELECT * FROM `table` LIMIT 30,10
    table - имя таблицы
    30 - это позиция с которой искать (речь не идет об ID 30, а о 30-й позиции (строчке) в самой таблице)
    10 - сколько получать записей из БД, т.е. если 10 значит 10 запись, если 100 значит 100 запись.
     
  4. eldor

    eldor Активный пользователь

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    Я так себе делал:
    Код (Text):
    1.  
    2. ...
    3. //Достаем из таблицы `news`
    4. кол-во всех новостей.
    5. $news_1a = "SELECT COUNT (`id_news`) FROM `news`";
    6. ...
    7. //Кол-во новостей выводимых за один раз.
    8. $quntity_news = 5;
    9. //Делим общее кол-во новостей на один вывод на странице новостей (в нашем случае это 5 шт.), далее округляем число в большую сторону и приводим значение к целому числу.
    10. $total_pages = intval(ceil($id_news/$quntity_news));
    11. //Если был осуществлен переход по новостным страницам, то значение $_GET['next_news'] приводим к целому числу, заносим в обычную переменную и уменьшаем значение переменной на 1 для правильной выборки из базы.
    12.  $next_news = intval ( $_GET['next_news']);
    13. //Тут у меня проверка $_GET['next_news'] - лень писать - пишу с телефона.
    14.  $next_news = $next_news - 1;
    15.  
    16. //Расчитываем какую страницу выводить.
    17. $page_number = $next_news*$quantity_news;
    18. //Достаем новости из БД.
    19. $news_1 = "SELECT  * FROM `news` LIMIT ?, ?";
    20.  $news_2 = mysqli_prepare($db,$news_1);
    21. mysqli_stmt_bind_param ( $news_2, 'ii', $page_number,$quantity_news);
    22. ...
    Далее сами запрос допишите - лень дописывать - с телефона пишу.

    p.s.
    1.Не знаю на сколько это верно - сам наваял))).
    2. За ошибки прошу прощения - с телефона трудно все учесть.
     
  5. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36