|
|
|
| Здравствуйте подскажите пожалуйста как вывести данные из всех дочерних каталогов
таблица каталогов id_cat (AUTO_INCREMENT).....id_parent (для вложенности каталогов)
таблица с данными id_pos (AUTO_INCREMENT)..........id_cat (ключ к таблице каталогов) | |
|
|
|
|
|
|
|
для: сотка
(14.08.2015 в 13:53)
| |
<?
SELECT *
FROM table_with_data
WHERE id_cat IN (
SELECT id_cat
FROM table_with_catalogs
WHERE id_parent = {здесь ID парента для которого берем все дочерние}
)
|
| |
|
|
|
|
|
|
|
для: Igorek
(14.08.2015 в 15:22)
| | 0 строк выдает... | |
|
|
|
|
|
|
|
для: сотка
(14.08.2015 в 19:13)
| | необходимо больше информации для анализа.
Приведите дампы обоих таблиц и желаемый результат | |
|
|
|
|
|
|
|
для: Igorek
(15.08.2015 в 15:13)
| |
CREATE TABLE IF NOT EXISTS `system_android_catalog` (
`id_apk` int(11) NOT NULL AUTO_INCREMENT,
`name` tinytext NOT NULL,
`description` text NOT NULL,
`pos` int(11) NOT NULL DEFAULT '0',
`hide` enum('show','hide') NOT NULL DEFAULT 'show',
`id_parent` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id_apk`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=47 ;
(1, 'Игры', 'Андроид игры скачать бесплатно по прямым ссылкам без регистрации и смс', 1, 'show', 0),
(2, 'Аркады', '', 1, 'show', 1),
(3, 'Викторины', '', 2, 'show', 1),
(4, 'Гонки', '', 3, 'show', 1),
(5, 'Казино', '', 4, 'show', 1),
(6, 'Казуальные', '', 5, 'show', 1),
(7, 'Приключения', '', 7, 'show', 1),
(8, 'Ролевые', '', 8, 'show', 1),
(9, 'Симуляторы', '', 10, 'show', 1),
(10, 'Спортивные', '', 11, 'show', 1),
(11, 'Стратегии', '', 12, 'show', 1),
(12, 'Экшен', '', 13, 'show', 1),
(13, 'Карточные / Настольные', '', 14, 'show', 1),
(14, 'Приложения', 'Скачать бесплатно андроид приложения по прямым ссылкам без регистрации и смс', 2, 'show', 0),
(15, 'Бизнес', '', 1, 'show', 14),
(16, 'Здоровье / Фитнес', '', 2, 'show', 14),
(17, 'Инструменты', '', 3, 'show', 14),
(18, 'Медицина', '', 4, 'show', 14),
(19, 'Музыка / Аудио', '', 5, 'show', 14),
(20, 'Мультимедиа / Видео', '', 6, 'show', 14),
(21, 'Образование', '', 7, 'show', 14),
(22, 'Персонализация', '', 8, 'hide', 14),
(23, 'Погода', '', 9, 'show', 14),
(43, 'Книги и справочники', '', 23, 'show', 14),
(25, 'Путешествия', '', 11, 'show', 14),
(26, 'Работа', '', 12, 'show', 14),
(27, 'Развлечения', '', 13, 'show', 14),
(28, 'Разное', '', 14, 'hide', 14),
(29, 'Связь', '', 15, 'show', 14),
(30, 'Социальные', '', 16, 'show', 14),
(31, 'Спорт', '', 17, 'show', 14),
(32, 'Стиль жизни', '', 18, 'show', 14),
(33, 'Транспорт', '', 19, 'show', 14),
(34, 'Финансы', '', 20, 'show', 14),
(35, 'Фотография', '', 21, 'show', 14),
(36, 'Оформление', 'Приложения для уникального оформления скачать бесплатно по прямым ссылкам без регистрации и смс ', 3, 'show', 0),
(37, 'Живые обои', '', 1, 'show', 36),
(38, 'Виджеты', '', 2, 'show', 36),
(39, 'Библиотека', '', 4, 'show', 0),
(40, 'Книги', '', 1, 'show', 39),
(41, 'Справочники', '', 2, 'show', 39),
(42, 'Покупки', '', 22, 'show', 14),
(44, 'Другое', '', 24, 'show', 14),
(45, 'Обучающие', '', 6, 'show', 1),
(46, 'Пазлы', '', 9, 'show', 1);
|
INSERT INTO `system_android_catalog` (`id_apk`, `name`, `description`, `pos`, `hide`, `id_parent`) VALUES......
[/code]
CREATE TABLE IF NOT EXISTS `system_android_position` (
`id_position` int(11) NOT NULL AUTO_INCREMENT,
`name` tinytext NOT NULL,
`autor` tinytext NOT NULL,
`site` tinytext NOT NULL,
`email` tinytext NOT NULL,
`boby` text NOT NULL,
`system` text NOT NULL,
`version` text NOT NULL,
`putdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`apk` tinytext NOT NULL,
`icon` tinytext NOT NULL,
`pollnumber` int(11) NOT NULL,
`pollmark` int(11) NOT NULL,
`hide` enum('show','hide') NOT NULL DEFAULT 'show',
`pos` int(11) NOT NULL DEFAULT '0',
`id_apk` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id_position`),
FULLTEXT KEY `name` (`name`,`boby`),
FULLTEXT KEY `name_2` (`name`,`boby`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=99 ;
|
INSERT INTO `system_android_position` (`id_position`, `name`, `autor`, `site`, `email`, `boby`, `system`, `version`, `putdate`, `apk`, `icon`, `pollnumber`, `pollmark`, `hide`, `pos`, `id_apk`)
|
| |
|
|
|
|
|
|
|
для: Igorek
(15.08.2015 в 15:13)
| | Нужно на выходе :
находясь в корневом каталоге вывести файлы относящиеся к корневому и дочерним каталогам !
то есть файлы принадлежащие к каталогам
(1, 'Игры', 'Андроид игры скачать бесплатно по прямым ссылкам без регистрации и смс', 1, 'show', 0),
(2, 'Аркады', '', 1, 'show', 1),
(3, 'Викторины', '', 2, 'show', 1),
(4, 'Гонки', '', 3, 'show', 1),
(5, 'Казино', '', 4, 'show', 1),
(6, 'Казуальные', '', 5, 'show', 1),
(7, 'Приключения', '', 7, 'show', 1),
(8, 'Ролевые', '', 8, 'show', 1),
(9, 'Симуляторы', '', 10, 'show', 1),
(10, 'Спортивные', '', 11, 'show', 1),
(11, 'Стратегии', '', 12, 'show', 1),
(12, 'Экшен', '', 13, 'show', 1),
(13, 'Карточные / Настольные', '', 14, 'show', 1),
|
| |
|
|
|
|
|
|
|
для: сотка
(15.08.2015 в 19:50)
| | Если так сделать ? это нагрузка большая наверное....я что то не уверен....
SELECT * FROM system_android_catalog JOIN system_android_position WHERE system_android_catalog .id_apk=system_android_position .id_position ;
|
правда тут еще нужно выборку сделать/// | |
|
|
|
|
|
|
|
для: сотка
(15.08.2015 в 19:50)
| | Каким образом файл связан с каталогом? Через свойство system_android_position.id_apk ? | |
|
|
|
|
|
|
|
для: Igorek
(16.08.2015 в 12:54)
| | Да ! | |
|
|
|
|
|
|
|
для: сотка
(16.08.2015 в 14:16)
| | Спросил, потому что смутил ваш запрос:
WHERE system_android_catalog .id_apk=system_android_position .id_position
Тогда так:
<?
SELECT *
FROM system_android_position
WHERE id_apk IN (
SELECT id_apk
FROM system_android_catalog
WHERE id_apk = 1 OR id_parent = 1
)
|
| |
|
|
|
|
|
|
|
для: Igorek
(16.08.2015 в 14:51)
| | Спасибо то что надо ! | |
|
|
|
|
|
|
|
для: Igorek
(16.08.2015 в 14:51)
| | А не подскажите условие ?! каким обзазом выводить все файлы дочерних каталогов если мы находимся только в корневом каталоге ?
То есть у меня сейчас стоит
if(empty($_GET['id_apk']))
{
//выводим список файлов принадлежащие каждой из категорий
........
..........
}
условие чтобы выводилось чисто в корневом каталоге
{
$query = "SELECT *
FROM system_android_position
WHERE id_apk IN (
SELECT id_apk
FROM system_android_catalog
WHERE id_apk =$_GET[id_apk] OR id_parent =$_GET[id_apk]
)ORDER BY RAND() LIMIT 12 " ;
}
|
| |
|
|
|
|
|
|
|
для: сотка
(16.08.2015 в 17:12)
| | Вообще не понял вопрос.
вам нужно "чтобы выводилось чисто в корневом каталоге " ? т.е. файлы принадлежащие только одному конкретному каталогу?
если да, то:
<?
SELECT *
FROM system_android_position
WHERE id_apk = 1
|
если и дочерние нужны, то запрос уже у вас есть такой. В общем, сформулируйте яснее | |
|
|
|
|