kharkov_max Posted September 23, 2013 Share Posted September 23, 2013 День добрый. По необходимости написал себе sql скрипт (отчет) по товарам к которым не привязана ни одна картинка. Хочу написать подобный отчет для категорий, но в упор не вижу в БД этой информации. Скажем id картинки - id категории. Данная связка в БД вообще есть или нет? Спасибо. Link to comment Share on other sites More sharing options...
savvato Posted September 23, 2013 Share Posted September 23, 2013 этой информации в БД нет Link to comment Share on other sites More sharing options...
Nelexis Posted September 23, 2013 Share Posted September 23, 2013 В базе или нет, какая разница? Картинки у категорий есть и они хранятся в папке /img/c/, только что проверил загрузив категории картинку через админ. панель. Хранятся они там в виде файлов: id_category.jpg id_category-шаблон_изображения.jpg Шаблоны изображений хранятся в таблице __DB_PREFIX__image_type, вместе с размерами. Вот и проверьте есть ли у всех. Сделайте выборку всех категорий и проверьте наличие файлов им соответствующих в папке. Ну а отчет уже выводите либо в текстовый файл, либо сразу в окно, либо каким-то другим методом. Это уже от ваших личных предпочтений зависит. Link to comment Share on other sites More sharing options...
kharkov_max Posted September 24, 2013 Author Share Posted September 24, 2013 В базе или нет, какая разница? Картинки у категорий есть и они хранятся в папке /img/c/, только что проверил загрузив категории картинку через админ. панель. Хранятся они там в виде файлов: id_category.jpg id_category-шаблон_изображения.jpg Шаблоны изображений хранятся в таблице __DB_PREFIX__image_type, вместе с размерами. Вот и проверьте есть ли у всех. Сделайте выборку всех категорий и проверьте наличие файлов им соответствующих в папке. Ну а отчет уже выводите либо в текстовый файл, либо сразу в окно, либо каким-то другим методом. Это уже от ваших личных предпочтений зависит. Тот вариант что предлагаете Вы (через FS), предполагает наличие админаских прав и доступа к FS сайта. А я хотел сделать запрос в SQL положить его в админку и отдать юзеру на выполнение. Так у меня получилось сделать с товарами. Т.е. теперь пользователь который наполняет сайт может запустить этот отчет и реально увидеть на каких товарах нет картинок. Ок, вопрос можно закрыть ... С картинками категорий просто через SQL не получится, как я изначально и предполагал... Всем спасибо за ответы. Link to comment Share on other sites More sharing options...
Kerm Posted September 24, 2013 Share Posted September 24, 2013 (edited) На базе этого из category.php можно в админке вывести список категорий без картинок... public function getSubCategories($id_lang, $active = true) { $groups = FrontController::getCurrentCustomerGroups(); $sqlGroups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1'); $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT c.*, cl.id_lang, cl.name, cl.description, cl.link_rewrite, cl.meta_title, cl.meta_keywords, cl.meta_description FROM `'._DB_PREFIX_.'category` c LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND `id_lang` = '.(int)$id_lang.') LEFT JOIN `'._DB_PREFIX_.'category_group` cg ON (cg.`id_category` = c.`id_category`) WHERE `id_parent` = '.(int)$this->id.($active ? ' AND `active` = 1' : '').' AND cg.`id_group` '.$sqlGroups.' GROUP BY c.`id_category` ORDER BY `level_depth` ASC, c.`position` ASC'); foreach ($result as &$row) { $row['id_image'] = file_exists(_PS_CAT_IMG_DIR_.$row['id_category'].'.jpg') ? (int)$row['id_category'] : Language::getIsoById((int)$id_lang).'-default'; $row['legend'] = 'no picture'; } return $result; } Edited September 24, 2013 by Kerm (see edit history) Link to comment Share on other sites More sharing options...
kharkov_max Posted September 24, 2013 Author Share Posted September 24, 2013 Да Вы правы, но я хотел вывод используя только запрос к БД. А так получается нужно делать отдельную страницу - отчет для категорий. К примеру по товарам есть связка id товара и id изображения, по сути я проверяю только это совпадение не проверяя есть ли физическое наличие картинки в FS. Конечно несовсем правильно, но если на FS ни кого не пускать то врятли там что то само собой пропадет, ну и тогда данный запрос будет стремится к 100% точности. Link to comment Share on other sites More sharing options...
Kerm Posted September 24, 2013 Share Posted September 24, 2013 А если сделать скрипт запускающийся по крону который будет в БД добавлять 0 или 1 в зависимости есть картинка или нет и потом SQL запросом получать информацию как ты хотел. Link to comment Share on other sites More sharing options...
Nelexis Posted September 24, 2013 Share Posted September 24, 2013 А если сделать скрипт запускающийся по крону который будет в БД добавлять 0 или 1 в зависимости есть картинка или нет и потом SQL запросом получать информацию как ты хотел. Для этого все-равно нужен PHP. Как я понял по условию, условно доступ есть только к базе данных. Выполнить эту задачу средствами SQL не представляется возможным. Link to comment Share on other sites More sharing options...
kharkov_max Posted September 24, 2013 Author Share Posted September 24, 2013 А если сделать скрипт запускающийся по крону который будет в БД добавлять 0 или 1 в зависимости есть картинка или нет и потом SQL запросом получать информацию как ты хотел. И так тоже можно, но это дополнительный гиморой. Решил ограничится только товарами, кстати если кому запрос нужен пишите выложу. Link to comment Share on other sites More sharing options...
Kerm Posted September 24, 2013 Share Posted September 24, 2013 Напиши Link to comment Share on other sites More sharing options...
Recommended Posts