Проблема в том, что новые сообщения добавляются в конец таблицы.
А на страницу нужно вывести последние 20 добавленных сообщений.
Или велосипед изобретать, получать количество строк - 20 и делать новый запрос?
_____________
Принимаю заказы, писать в ЛС
Игорь_Vasinsky
26.03.2015 - 11:22
select * from table order by id DESC limit 20
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Цитата (Игорь_Vasinsky @ 26.03.2015 - 07:22) |
select * from table order by id DESC limit 20 |
Это то всё верно, а если у него не ведётся запись по id?
_____________
минус, конечно, иногда полезен, но
плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
Цитата (Xpund @ 26.03.2015 - 11:37) |
Цитата (Игорь_Vasinsky @ 26.03.2015 - 07:22) | select * from table order by id DESC limit 20 |
Это то всё верно, а если у него не ведётся запись по id?
|
id то есть, но там ещё запрос с условием
_____________
Принимаю заказы, писать в ЛС
Игорь_Vasinsky
26.03.2015 - 12:29
Xpund
шв - это абстрактно. в любой таблице у строк должен быть уникальный идентификатор строки.
Цитата |
id то есть, но там ещё запрос с условием |
про where не слышал?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Если вдруг захочется вывести последние 20 от последних 20 и еще 20 от предпоследних 20 которые есть последними 20 за вычетом последних 20, т.е. сделать пагинацию по 20 начиная с конца тогда:
SELECT * FROM table ORDER BY any_field DESC LIMIT $shift,$count;
где
$shift = 0;
$count = 20
Ну и на всякий случай по 20 сначала:
SELECT * FROM table ORDER BY any_field ASC LIMIT $shift,$count;
_____________
Трус не играет в хокей
bestxp
26.03.2015 - 17:19
stumpвообщето сначала идет кол-во записей, потом сдвиг от начала
при постраничной все просто,
$limit = 10;
$page = 1;
получается берем 10 записей после 10 с начала таблицы
SELECT * FROM table ORDER BY any_field ASC LIMIT $limit,$page*$limit;
в твоем случае он будет брать по n записей начиная с 20
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.