![]() |
вопрос.
Если можно, переименуйте топик, потому что как коротко сформулировать свой вопрос незнаю.
Изменяю модуль Download, там в таблице downloads_categories есть поля cid, title и parentid. Нужно имея значения поля parentid вынуть название title из того cid, который указан parentid. ..... умно так сказал, сам не понял :) На примере, вот таблица: CREATE TABLE `downloads_categories` ( `cid` int(11) NOT NULL auto_increment, `title` varchar(50) NOT NULL default '', `cdescription` text NOT NULL, `parentid` int(11) NOT NULL default '0', PRIMARY KEY (`cid`), KEY `cid` (`cid`), KEY `title` (`title`) ) downloads_categories` VALUES (1, 'Программы', '', 0); downloads_categories` VALUES (2, 'Графика и дизайн', '', 1); downloads_categories` VALUES (3, 'Графика', '', 0); downloads_categories` VALUES (4, 'Сканы', '', 3); downloads_categories` VALUES (5, 'Иконки и смайлики', '', 3); downloads_categories` VALUES (6, 'Анимация GIF', '', 3); После запроса в базу получаем данные из CID 5. Выводим подраздел: Иконки и смайлики и имеем 2 значения CID и PARENTID. Нужно зная этот PARENTID=3 вывести еще TITLE Графика, CID которого=3 Чтобы получилось Раздел: Графика. Подраздел: Иконки и смайлики. ------------ Насколько я понимаю, еще раз сделать запрос в БД, где CD=3. Правильно ли понимаю, или можно проще? |
да все правильно понимаете, единственное можно сразу вывести всю таблицу downloads_categories и завести ее в массив, а затем выводить данные по cid
|
Еще вопросик. Хочу сделать вывод всех файлов, которые относятся к категории, а в таблице для файлов нет parentid.
Условие, если parentid=0, то это главная категория и зная ее CID нужно найти из остальных записей, где parentid=ее cid. И потом по найденым записям и их cid запросить уже из другой таблицы файлы.... Понятия не имею как такое возможно сделать и возможно ли вообще? Неохто переделывать админку и добавлеть поле parentid в сами файлы, но чувствую придется :) |
это выполнить довольно просто при помощи сложного запроса используя например такой оператор как Left Join
|
Если не сложно и будет свободная минутка, не могли вы запрос этот поправить...
Left Join у меня только на примере оптимизации новостей, а тут еще и условие... не соображу никак... $result = $db->sql_query("SELECT d.*, c.* FROM ".$prefix."_downloads_downloads AS d LEFT JOIN ".$prefix."_downloads_categories AS c ON(c.parentid='$cid') order by $orderby limit $min,$perpage"); Нужно вынуть все файлы, CID которых = CID категорий, а те в свою очередь найти, зная их PARENTID равный настоящему CID.. Запутался капитально с этими CID.. даже вопрос сфигурировать сложно... |
--------
вроде разобрался, только не через Left Join, но тоже запросом сразу в 2 таблицы. |
Часовой пояс GMT +4, время: 18:03. |
Copyright © 2005 by Soniks