Чат пользователей PHP + SQL?

Привет, тостер. На сайте есть диалог между двумя (возможно более) пользователями.
Всё работает в связки PHP + MySQL. Приведу общее описание текущей системы :
Таблица chat:
id | id_room | id_user | text | ...
PHP код:
$query = mysql_query("SELECT * FROM chat WHERE id_room = $id_room LIMIT 50");
while ($chat = mysql_fetch_assoc($query)) { 
echo getusername($chat['id_user']);
echo $chat['text'];
           }?>
// форма отправки сообщения

Сейчас при достижении порога в 50 сообщений, новые не выводятся.
Подскажите как сделать вывод только 50 последних сообщений, пока без подгрузки новых и всего такого.
Пробовал многое: получал id последнего сообщения - 50 и пытался вывести с id - 50 (минус) по последнее, но безрезультатно и еще разные фокусы с MySQL.
  • Вопрос задан
  • 928 просмотров
Пригласить эксперта
Ответы на вопрос 2
planc
@planc
сортировать в обратном порядке допустим по полю id: order by id desc

mysql_query использовать не стоит
phpfaq.ru/pdo

и если вы не фильтруете $id_room и эта переменная приходит от пользователя, то пользователь может запихать в нее свой запрос вида( select username, password from users)
Ответ написан
@entermix
[LIMIT [offset,] rows]

Выражение LIMIT может использоваться для ограничения количества строк, возвращенных командой SELECT. LIMIT принимает один или два числовых аргумента. Эти аргументы должны быть целочисленными константами. Если заданы два аргумента, то первый указывает на начало первой возвращаемой строки, а второй задает максимальное количество возвращаемых строк. При этом смещение начальной строки равно 0 (не 1):

mysql> SELECT * FROM table LIMIT 5,10; # возвращает строки 6-15

www.mysql.ru/docs/man/SELECT.html
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы