Заголовок новости
Название категория (она же гиперссылка, но тут вроде просто, потому что id категории есть в вырорке)
Краткое описание новости (ну и в полном описании тоже категория может пригодится).
Спустя 7 часов, 15 минут, 24 секунды (9.04.2011 - 02:15) sebastjan написал(а):
Как то запутанно излагаете.
Лично я понял так.
1.Имеються таблицы под названием категории(В их полях статьи-новости)
2.Надо выводить блоки с статьями-новостями и заголовком какая категория.(Вроде так понял !?)
Я у себя построил такую логику,
Сделал отдельную таблицу в которой поля это имена категорий их то и использую в гет.
К примеру навигация-меню в цикле выводится а из этой таблицы все имена полей идут в линки навигации
В админке удобно, удалил из этой таблицы поле категории и автоматом из навигации всё проподает.(удаляю ещё и из базы таблицу под этим именем чтоб не оставалось лишнего)
Наверное я тоже изложил не совсем понятно
Моё мнение - сделай отдельную таблицу для имён категорий, а от неё и играй.
Лично я понял так.
1.Имеються таблицы под названием категории(В их полях статьи-новости)
2.Надо выводить блоки с статьями-новостями и заголовком какая категория.(Вроде так понял !?)
Я у себя построил такую логику,
Сделал отдельную таблицу в которой поля это имена категорий их то и использую в гет.
К примеру навигация-меню в цикле выводится а из этой таблицы все имена полей идут в линки навигации
В админке удобно, удалил из этой таблицы поле категории и автоматом из навигации всё проподает.(удаляю ещё и из базы таблицу под этим именем чтоб не оставалось лишнего)
Наверное я тоже изложил не совсем понятно

Моё мнение - сделай отдельную таблицу для имён категорий, а от неё и играй.
Спустя 13 часов, 20 минут, 43 секунды (9.04.2011 - 15:36) allforweb написал(а):
Цитата (sebastjan @ 8.04.2011 - 23:15) |
Как то запутанно излагаете. Лично я понял так. 1.Имеються таблицы под названием категории(В их полях статьи-новости) 2.Надо выводить блоки с статьями-новостями и заголовком какая категория.(Вроде так понял !?) Я у себя построил такую логику, Сделал отдельную таблицу в которой поля это имена категорий их то и использую в гет. К примеру навигация-меню в цикле выводится а из этой таблицы все имена полей идут в линки навигации В админке удобно, удалил из этой таблицы поле категории и автоматом из навигации всё проподает.(удаляю ещё и из базы таблицу под этим именем чтоб не оставалось лишнего) Наверное я тоже изложил не совсем понятно ![]() Моё мнение - сделай отдельную таблицу для имён категорий, а от неё и играй. |
У меня все это сделано.
Категории - id - category
Новости - id - сама новость - id категории которой она принадлежит
Спустя 1 минута, 52 секунды (9.04.2011 - 15:38) neadekvat написал(а):
Подзапросом через LEFT JOIN, например.
Покажите точную структуру этих двух таблиц - иначе нет смысла писать запрос.
Покажите точную структуру этих двух таблиц - иначе нет смысла писать запрос.
Спустя 22 минуты, 5 секунд (9.04.2011 - 16:00) allforweb написал(а):
Цитата (neadekvat @ 9.04.2011 - 12:38) |
Подзапросом через LEFT JOIN, например. Покажите точную структуру этих двух таблиц - иначе нет смысла писать запрос. |
Вот у меня такая структура таблиц:
Категории - имя таблицы category:
id_cat - name - active (1 или 0, 1 - категория выводится, 0 - категория не выводится)
Новости - имя таблицы news:
id_news date title content category active (1 или 0, 1 - новость выводится, 0 - не выводится)
На странице выглядит так:
Заголовок
Дата: 01.08.2010 | Имя категория (гиперссылка)
Краткое описание новости
Заголовок
Дата: 01.08.2010 | Имя категория (гиперссылка)
Краткое описание новости
Заголовок
Дата: 01.08.2010 | Имя категория (гиперссылка)
Краткое описание новости
пагинатор 1 2 3 4 ....55
Спустя 4 минуты, 34 секунды (9.04.2011 - 16:04) neadekvat написал(а):
Где-то я тут буквально несколько минут назад уже писал похожий запрос. Ну, ладно.
Связывайте:
Если бы в таблице news категория имела то же имя, что и в своей таблице (id_cat), можно было бы написать проще:
Связывайте:
SELECT t1.*, t2.id_cat, t2.name
FROM `news` t1
LEFT JOIN category t2 ON t1.category = t2.id_cat
WHERE t1.new_id = 123
Если бы в таблице news категория имела то же имя, что и в своей таблице (id_cat), можно было бы написать проще:
SELECT t1.*, t2.id_cat, t2.name
FROM `news` t1
LEFT JOIN category t2 USING(id_cat)
WHERE t1.new_id = 123
Спустя 5 минут, 46 секунд (9.04.2011 - 16:10) Trianon написал(а):
neadekvat
с using лучше не связываться...
честное равенство в ON куда меньше нервов требует.
с using лучше не связываться...
честное равенство в ON куда меньше нервов требует.
Спустя 1 минута, 51 секунда (9.04.2011 - 16:12) neadekvat написал(а):
Цитата (Trianon @ 9.04.2011 - 17:10) |
с using лучше не связываться... |
Хм.. Я еще не сталкивался с проблемами - чего можно ожидать?
Спустя 11 минут, 59 секунд (9.04.2011 - 16:24) Trianon написал(а):
У табличного соединения есть простое и понятное правило. Табличный результат состоит из суммарного набора колонок левой и правой таблицы.
Применение using убирает из этого результата одну дублирующую колонку.
Сразу возникают дурацкие вопросы.
Как ссылаться? t1.id_cat? t2.id_cat
А если это LEFT запрос - будут там NULL или живые данные в LEFT-строках?
А если цепочка JOIN идет, то там, помнится еще какие-то подводные камни были с приоритетом чтоли...
плюс зависимость от версии сервера. См. мануал.
Короче, куча гимора наползает, который помнить нужно, а не хочется.
а JOIN ON - просто как молоток , и без всяких вывертов.
нет, я не спорю, можно выучить все эти ньюансы, иходить задрав нос потом спокойно читать using в чужом коде.
Но мне как-то . брр.
Применение using убирает из этого результата одну дублирующую колонку.
Сразу возникают дурацкие вопросы.
Как ссылаться? t1.id_cat? t2.id_cat
А если это LEFT запрос - будут там NULL или живые данные в LEFT-строках?
А если цепочка JOIN идет, то там, помнится еще какие-то подводные камни были с приоритетом чтоли...
плюс зависимость от версии сервера. См. мануал.
Короче, куча гимора наползает, который помнить нужно, а не хочется.
а JOIN ON - просто как молоток , и без всяких вывертов.
нет, я не спорю, можно выучить все эти ньюансы, и
Но мне как-то . брр.
Спустя 7 минут, 49 секунд (9.04.2011 - 16:32) neadekvat написал(а):
Ух ты оО Все-таки надо уломать себя на чтение хорошей книжки по mysql. Дьявол - в деталях.