![]() |
|
Модераторы: skyboy |
![]()
|
|
| Dimash[Odessa] |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 25.12.2006 Репутация: нет Всего: нет |
Как сделать так, чтобы года не повторялись вот так 2004 2004 2005 2005 2005 , а каждый год был по одному.. как написать условие.. что не писал .. одна же ерунда. Ps. В Базе есть новости, и года высвечиваются в админке, если на этот год есть новость как ссылка... Вот для чего так выводить года. Добавлено @ 12:04 \
Это сообщение отредактировал(а) Dimash[Odessa] - 26.12.2006, 11:56 |
||||
|
|||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 19 |
Dimash[Odessa], сразу замечания:
1. По коду - учитесь писать грамотно, посмотрите на примеры профессионалов. 2. ПО условию - формулируй, чтобы отвечающие поняли. Непонятно, почему года сохраняются в элемент массива, поэтому пример без этого:
Added Когда отвечал, добавления не было. Более рационально было бы воспользоваться хранением даты в поле типа date и использовать один запрос SQL для извлечения неповторяющихся значений годов. Это сообщение отредактировал(а) Nicholas_S - 26.12.2006, 12:19 -------------------- ...все в мире относительно |
|||
|
||||
| -=Ustas=- |
|
|||
![]() Ustix IT Group ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2222 Регистрация: 21.1.2005 Где: Краснодар Репутация: 4 Всего: 69 |
странные вообще-то у тебя конструкции. ты лучше скажи что тебе нужно и структуру таблицы покажи
-------------------- В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм. ----- |
|||
|
||||
| Dimash[Odessa] |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 25.12.2006 Репутация: нет Всего: нет |
Спасибо Николос. Твоя конструкция намного лучше.
|
|||
|
||||
| G0rinich |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 21.8.2006 Репутация: нет Всего: 1 |
Если года надо вернуть именно в виде массива, то можно предложить 2 решения
1. Все оставить точно так и над итоговым массивом сделать array_unique() 2. Делать не $year[].=$added[0];, а $year[$added[0]]++; А потом вернуть array_keys(). Кажется мне, что второй вариант оптимальнее. Ну или использовать пример Nicholas_S, но только если вывод будет осуществляться тут же и при условии, что года идут последовательно и не может быть последовательности типа 2006 2005 2004 2005... Ну а самое грамотное, это заставить БД выдать все уникальные года, это будет на порядок быстрее, т.к. MySQL с математическими операциями работает пошустрее РНР. Это сообщение отредактировал(а) G0rinich - 28.12.2006, 12:09 |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Если надо получить список лет, то:
или добавлоением в начал DISTICT Модератор: тема для MySQL форума |
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 19 |
Mal Hack, у него даты хранятся в текстовом формате, поэтому получить неповторяющийся список годов таким запросом не получится.
Плюс небольшая поправка - DISTINCT. -------------------- ...все в мире относительно |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Nicholas_S, SUBSTRING на что? FORMAT_DATE на что?
|
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 19 |
Mal Hack, при условии, что ему нужно вытащить не только часть даты, но так же еще и день/месяц, то DISTINCT не выдаст нужного результата - он исключит все одинаковые даты, однако даты типа 2006-11-12 & 2006-11-13 он не разделит как одинаковые. Даже если ты вызовешь SUBSTRING(<здесь выдираем дату>), то DISTINCT не сработает в виду уникальности полей дат.
Приведешь пример? -------------------- ...все в мире относительно |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
Nicholas_S, я не имею ввиду, когда ему надо вытащить все новости. Если ему надо получить года, когда были новости, то надо делать так, как я говорил выше с использованием FORMAT_DATE.
|
|||
|
||||
| Nicholas_S |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 12.10.2006 Где: Санкт-Петербург Репутация: нет Всего: 19 |
Mal Hack, если только года, то согласен
-------------------- ...все в мире относительно |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MySQL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |