
29.09.2009, 23:55
|
|
Reservists Of Antichat - Level 6
Регистрация: 10.04.2008
Сообщений: 299
С нами:
9518726
Репутация:
405
|
|
Сообщение от Architek86
crazy~driver, благодарю.
Однако до полного счастья осталось разобраться с ещё одним вопросом. Уверен, это реализуется легко. Есть значит выбранная строка из базы. Надо сделать запрос в базу так, что бы он выдал ещё 5 строк: 3 предыдущие и 2 более новые от данной строки (сортируя по дате создания полей - `time`). Каг?
Выборка по полю id с auto_increment врядли подойдёт.. насколько я помню, при удалении строки список id не пересчитывается и мы можем иметь такие записи:
id name
5 aaa
6 bbb
8 ccc
В итоге вместо ожидамого id 7, предшествующему id 8, мы получим ошибку.
Я бы тебе посоветовал сделать два запроса к БД. Объединить их никак не получилось из-за limit'ов. Может, конечно, мало думал, но вариант пока только такой. Если кто-то объединит - будет интересно посмотреть, как это можно сделать.
PHP код:
SELECT * FROM `articles` WHERE `unixtime` < (SELECT `unixtime` FROM `articles` WHERE `articleid`='53') ORDER BY `unixtime` DESC limit 0,3;
SELECT * FROM `articles` WHERE `unixtime` >= (SELECT `unixtime` FROM `articles` WHERE `articleid`='53') ORDER BY `unixtime` ASC limit 0,3;
__________________
II venēficus, ī m.
(с лат.) волшебник, чародей
Последний раз редактировалось Neoveneficus; 30.09.2009 в 00:06..
|
|
|