Быстрый переход |
|
Программирование PHP, Perl, HTML, XHTML, CSS, JavaScript, MySQL и другие языки кодирования. |
|
Опции темы |
Сегодня | |||||
|
14.01.2009, 02:14 | #31 | |||
Реноме:
927
|
При всем моем уважении, но это является не верным решением и трудоемким в плане обработки (я о 3 таблицах). Куда проще занесети данные нужных категорий в одну таблицу, а затем при выводе их обрабатывать. Делается это достаточно просто: с помощью implode мы объединяем данные в строку и заносим в БД. А на выходе с помощью explode обрабатываем эти категории (присваиваем имена им т.п.). Именно это и рекомендуют разработчики php, а не заморочки с 3 таблицами.
Даже с 3 таблицами обработать данные на выходе - это трудоемкий процесс для php и mysql. Порой бывает что-то посложнее нужно сделать, не создавать же 4-5 таблиц? А кому нужно много времени на обработку? По поводу implode/explode вообще без комментариев. Сравните длину цепочки: "запрос - php обработка - запрос" или просто "запрос".
__________________
Регистрация доменов |
|||
14.01.2009, 02:44 | #32 | |||
|
X-Ception, хорошо, а теперь перейдем именно к делу. Раз на то пошло, то выполните следующую задачу Вашим же методом. Имеется новость [id, заголовок, категория, описание], имеются категории [id, имя категории].
Заполняем категории: 1, Комедия 2, Драма 3, Боевик Создаю новость: 1, Час пик 2, (хочу две категории - 1 и 3), Этот фильм о бла бла бла Вывожу новость на главной странице: Название: Час пик 2 Категории: Боевик, Драма (через запятую! та хотя можно и без, зачем себя утруждать?) [ категории 1,3 собственно]; должно получится: <a href="id категории">имя категории</a> Описание: Этот фильм бла бла бла Покажите рабочий пример исходя из этих данных, а мы ВСЕ посмотрим реализацию сего чуда. |
|||
14.01.2009, 03:21 | #33 | |||
Реноме:
927
|
Это не чудо, а просто интересное и красивое решение
Код:
SELECT n.id, n.title, n.description, GROUP_CONCAT( CONCAT("<a href=\"http://site/?category=",c.id,"\">",c.name,"</a>") SEPARATOR ", ") as "links" FROM news as n LEFT JOIN news_categories as nc ON nc.news_id=n.id LEFT JOIN categories as c ON c.id=nc.cat_id GROUP BY n.id;
__________________
Регистрация доменов |
|||
14.01.2009, 05:41 | #34 | |||
|
Уже полностью согласен, красивое решение и главное рабочее.
Большое спасибо за помощь здесь и за пределами форума! |
|||
14.01.2009, 18:39 | #36 | |||
|
А кто знает, можно ли такое делать, вот например у меня в таблице много данных ... можно ли их отсортировать по алфавитному порядку навсегда в таблице ? (когда нажимаю по колонке title данные сортируются , но обновляю страницу и она опять в порядке их добавления)
|
|||
14.01.2009, 20:44 | #38 | |||
Предыдущий ник: cmxstudio
Реноме:
561
|
Нельзя, это особенность БД для быстрой работы
__________________
Пользуюсь хостингом |
|||
Реклама | |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|