Код который выводит Следующую и Предыдущую новость

1. Константин (24.10.2012 / 01:58)
Суть такая, есть таблица id | title | date
Новости могут удаляться, и id - не показатель очередности новости, новость сортируется по дате, дату я могу менять.

Допусти если просто сортировать WHERE меньше или больше `date`, все нормально.

Меня волнует как обыграть такой случай, если попадуться 2-3-4 новости с одинаковой датой, как тогда выдавать ссылку на предудыщую, следующую новость

2. Виталий (24.10.2012 / 02:02)
вопрос не раскрыт

3. Константин (24.10.2012 / 02:02)
Все раскрыл :-)

4. Петр (24.10.2012 / 08:46)
Если date содержит, только текущую дату, то, используя это поле, наверное, никак. С другой стороны, если все же большему id соответствует более ранняя новость, то можно написать, например, select * from table where id>=current_id limit 2 для текущей и следующей новости. Еще вариант - хранить в таблице поля prev_id и next_id.

5. shilo (24.10.2012 / 11:14)
как бы... на равне с датой пиши ещё и время

6. Константин (24.10.2012 / 13:59)
Нет смотрите, при добавлении новости я дату сам меняю, и бывает возникает такая ситуация что дата полностью идентична, следить за этим не хочется...
Соответственно id тут не показатель так как новость может быть более новой и с большим id и c меньшим id

7. AlyOha (24.10.2012 / 15:10)
Массив новостей в цикл и делаешь навигацию.

8. shilo (24.10.2012 / 15:34)
6, ты определись с логикой, по какому параметру должна осуществляться сортировка?
ты хочешь чтоб оно как-то само определяло что тебе нужно, такого не бывает.

9. Назар (24.10.2012 / 15:41)
Тип поля `date` какой?
Если DATE то меняй на DATETIME.

10. Константин (24.10.2012 / 17:22)
Поле DATETIME.
8, я определился уже, говорю же мне нужно в текущей новости, внутри нее, дать ссылку на предыдущую и следующую, перелинковка так сказать.

Order by делаю по `date`, все нормально до тех пор пока не появятся 2-3-4 новости с одинаковым полем `date`

Так понятней? :-)

11. Петр (24.10.2012 / 19:28)
10. HOUSTON, не, ну ты сам подумай, поле date одинаковое, id, как ты написал, не влияет - как тут определить, какая новость раньше? Можешь ввести еще одно поле и по нему сортировать. Ну или сделать еще два поля - id предыдущей и следующей новости.

12. Виталий (24.10.2012 / 20:02)
а не проще дату получать и писать в бд через time() ? извиняюсь если обсуждалось не читал тему... пробежал взглядом.

13. Константин (25.10.2012 / 11:52)
Да уж сделал себе... просто новости хотел добавлять изменяя дату вручную, типа старые новости, сделал блин..

URL: https://visavi.net/topics/35004