Код который выводит Следующую и Предыдущую новость
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