perplexor 0 Опубликовано 5 января, 2010 Жалоба Share Опубликовано 5 января, 2010 Пытался сделать так, чтобы в каталоге не отображались товары, которые находятся в блоке Скоро в продаже на главной. Пробовал по аналогии с upcoming_products.php вставить в SQL запрос файла products_listing.php следующее: в секцию SELECT products_date_available as date_expected from ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_DESCRIPTION." pd, ".TABLE_MANUFACTURERS." m и в секцию WHERE where to_days(products_date_available) >= to_days(now()) ну и поменял >= на < и никакого результата. Там было 2 запроса, модифицировал оба, не получается. Как решить? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 5 января, 2010 Жалоба Share Опубликовано 5 января, 2010 Может не тот запрос правите, а может и ошибка в запросе. Нужно смотреть ведь, что выводит Ваш запрос, наверное условие не выполняется, поэтому и не убирается. Ссылка на сообщение Поделиться на другие сайты
perplexor 0 Опубликовано 5 января, 2010 Автор Жалоба Share Опубликовано 5 января, 2010 я правил оба, которые отвечаю за выдачу товара, просто вставил данные из запроса файла upcoming_products а как бы вы сделали? помощт прошу Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 5 января, 2010 Жалоба Share Опубликовано 5 января, 2010 Чудес не бывает, либо правите не там, либо правите не так. Смотрите что выводит тот запрос, что Вы правите. Ссылка на сообщение Поделиться на другие сайты
perplexor 0 Опубликовано 5 января, 2010 Автор Жалоба Share Опубликовано 5 января, 2010 а просто подсказать правильное решение что не позволяет? Тут же форум поддержки, вроде как. То что я правлю не то или не там, понятно, но я сюда не за этим обратился. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 5 января, 2010 Жалоба Share Опубликовано 5 января, 2010 А просто написать: что именно правите, где именно правите, в каком месте, какие переменные, какой код получается, что не позвляет? Я наугад ничего конкретного сказать не могу. Вопрос нормально задайте, тогда и ответ будет нормальный: с указанием ошибок, что так, что не так, как исправить. Единственное, что могу сказать по первому сообщению, так это то, что правите как минимум не тот файл, sql запрос для вывода списка товара не в /includes/modules/product_listing.php и этот файл вообще править не надо. Запрос на вывод товара формируется в $listing_sql, в /includes/modules/default.php Ссылка на сообщение Поделиться на другие сайты
perplexor 0 Опубликовано 5 января, 2010 Автор Жалоба Share Опубликовано 5 января, 2010 вы вообще читаете что я написал выше? там всё указано, что и где правлю. Правлю файл products_listing.php, который выводит каталог товара. В том месте где находятся 2 sql запроса, отвечающие за выборку товара. Добавил в них данные их sql запроса файла upcoming_products.php, чтобы выбрать товары, ещё не поступившие на склад. Даже привел строчки, которые добавил. было (в файле products_listing.php): if($current_manufacturers_id != 0){ $product_list_rs = vamDBquery("select p.products_model, p.products_ean, pd.products_name, p.products_id from ".TABLE_PRODUCTS_DESCRIPTION." pd, ".TABLE_PRODUCTS_TO_CATEGORIES." p2c, ".TABLE_PRODUCTS." p where p.products_status = '1' " . $where_manufacturers . " and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '1' and p2c.categories_id = '" . $current_category_id . "' ORDER BY pd.products_name "); $product_list = array(); while($product_row = vam_db_fetch_array($product_list_rs,true)) { $product_list[] = $product_row; } $product_list_info = "TEST"; $module->assign('product_list', $product_list); } elseif (!empty($search_by_params_ids)) { $product_list_rs = vamDBquery("select p.products_model, p.products_ean, pd.products_name, p.products_id from ".TABLE_PRODUCTS_DESCRIPTION." pd, ".TABLE_PRODUCTS_TO_CATEGORIES." p2c, ".TABLE_PRODUCTS." p where p.products_status = '1' and " . $search_by_params_ids . " p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '1' and p2c.categories_id = '" . $current_category_id . "' ORDER BY pd.products_name "); добавил туда строки в секцию SELECT products_date_available as date_expected from ".TABLE_MANUFACTURERS." m и в секцию WHERE where to_days(products_date_available) >= to_days(now()) так как именно они, очевидно, и отвечают за выборку необходимого товара ну и поменял >= на < всё это я указал, способ не сработал. Вот я и спрашиваю, как убрать непоступившие товары, как правильно составить запрос. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 6 января, 2010 Жалоба Share Опубликовано 6 января, 2010 Я наверное не понятно пишу. Попробую тогда ещё раз повторить тоже самое, что я писал выше. Список товаров формируется не в /includes/modules/product_listing.php, а в /includes/modules/default.php, в $listing_sql запросах, если нужно что-то убирать из списка товаров внутри категорий, то именно эти запросы и надо править. Открываете файл /includes/modules/default.php Меняете: $listing_sql = "select p.products_fsk18, p.products_shippingtime, p.products_model, p.products_ean, pd.products_name, m.manufacturers_name, p.products_quantity, p.products_image, p.products_weight, pd.products_short_description, pd.products_description, p.products_id, p.manufacturers_id, p.products_price, p.products_vpe, p.products_vpe_status, p.products_vpe_value, p.products_discount_allowed, p.products_tax_class_id from ".$recursive_table_categories.TABLE_PRODUCTS_DESCRIPTION." pd, ".TABLE_PRODUCTS_TO_CATEGORIES." p2c, ".TABLE_PRODUCTS." p left join ".TABLE_MANUFACTURERS." m on p.manufacturers_id = m.manufacturers_id left join ".TABLE_SPECIALS." s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id ".$group_check." ".$fsk_lock." and pd.language_id = '".(int) $_SESSION['languages_id']."' " .$recursive_check .$sorting;[/code] на: [code] $listing_sql = "select p.products_fsk18, p.products_shippingtime, p.products_model, p.products_ean, pd.products_name, m.manufacturers_name, p.products_quantity, p.products_image, p.products_weight, pd.products_short_description, pd.products_description, p.products_id, p.manufacturers_id, p.products_price, p.products_vpe, p.products_vpe_status, p.products_vpe_value, p.products_discount_allowed, p.products_tax_class_id from ".$recursive_table_categories.TABLE_PRODUCTS_DESCRIPTION." pd, ".TABLE_PRODUCTS_TO_CATEGORIES." p2c, ".TABLE_PRODUCTS." p left join ".TABLE_MANUFACTURERS." m on p.manufacturers_id = m.manufacturers_id left join ".TABLE_SPECIALS." s on p.products_id = s.products_id where p.products_status = '1' and to_days(products_date_available) <= to_days(now()) and p.products_id = p2c.products_id and pd.products_id = p2c.products_id ".$group_check." ".$fsk_lock." and pd.language_id = '".(int) $_SESSION['languages_id']."' " .$recursive_check .$sorting; Ссылка на сообщение Поделиться на другие сайты
perplexor 0 Опубликовано 28 февраля, 2010 Автор Жалоба Share Опубликовано 28 февраля, 2010 ДА, спасибо, всё сработало, в 3 местах нашёл такой блок и везде добавил условие. только из каталога пропали товары, у которых дата не забита. что если я строчку and to_days(products_date_available) <= to_days(now()) заменю на and to_days(products_date_available) <= to_days(now()) or products_date_available= "" или такое условие не прокатит? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 28 февраля, 2010 Жалоба Share Опубликовано 28 февраля, 2010 Наверное не прокатит, дата ведь всё равно записывается в колонку products_date_available, по идее, там не будет пустой колонки. Ссылка на сообщение Поделиться на другие сайты
perplexor 0 Опубликовано 28 февраля, 2010 Автор Жалоба Share Опубликовано 28 февраля, 2010 а с точки зрения синтаксиса sql условие верно выглядит? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 28 февраля, 2010 Жалоба Share Опубликовано 28 февраля, 2010 Вроде бы да. Легче попробовать, да и убедиться самому. Ссылка на сообщение Поделиться на другие сайты
perplexor 0 Опубликовано 28 февраля, 2010 Автор Жалоба Share Опубликовано 28 февраля, 2010 нет, не работает, выдаёт пустой каталог я добавлял строчку and products_date_available = '' Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 28 февраля, 2010 Жалоба Share Опубликовано 28 февраля, 2010 Ну правильно, наверняка ведь нет товаров у которых в колонке products_date_available просто пустое место. Наверное там же что-то вроде 0000-00-00 00:00:00 или как-то так. Нужно в phpMyAdmin смотреть. Ссылка на сообщение Поделиться на другие сайты
perplexor 0 Опубликовано 28 февраля, 2010 Автор Жалоба Share Опубликовано 28 февраля, 2010 посмотрел... там стоит NULL попробовал and products_date_available = 'NULL' и версию без кавычек - нифига :( Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 28 февраля, 2010 Жалоба Share Опубликовано 28 февраля, 2010 Где NULL ?! У товаров записывается 0000-00-00 00:00:00 если не выбрана дата. Ссылка на сообщение Поделиться на другие сайты
perplexor 0 Опубликовано 28 февраля, 2010 Автор Жалоба Share Опубликовано 28 февраля, 2010 вот скриншот.... и таких товаров - десятки Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 28 февраля, 2010 Жалоба Share Опубликовано 28 февраля, 2010 Ну тогда не знаю, значит ошибка в запросе, раз не работает, либо не тот запрос правите. Ссылка на сообщение Поделиться на другие сайты
perplexor 0 Опубликовано 1 марта, 2010 Автор Жалоба Share Опубликовано 1 марта, 2010 ещё вопрос - в этом файле 3 разных запроса, которыми идёт отбор товаров, за что они отвечают, каждый из них? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 марта, 2010 Жалоба Share Опубликовано 2 марта, 2010 Отвечают за разные условия, сортировка по производителю, вывод товаров категории и т.д., там по самому SQL запросу в принципе видно, в чём разница. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения