Автор Тема: Вывод из нового столбца в БД для product_brief и product_detailed.  (Прочитано 8626 раз)

Оффлайн favn

  • Спец
  • ***
  • Сообщений: 121
    • Просмотр профиля
Shop-Script SP 5.0.2

Создал в БД в SS_products новый столбец pole.

Для product_detailed:
В файле product_detailed.php добавляю в $q = db_query("SELECT ".PRODUCTS_TABLE.".categoryID, ".PRODUCTS_TABLE.".name, ".PRODUCTS_TABLE.".description, customers_rating, Price, ".PRODUCTS_TABLE.".picture, in_stock, thumbnail, customer_votes, big_picture, list_price, productID, product_code, brief_description, ".PRODUCTS_TABLE.".hurl, accompanyID, ".PRODUCTS_TABLE.".meta_title, ".PRODUCTS_TABLE.".meta_keywords, ".PRODUCTS_TABLE.".meta_desc, ".PRODUCTS_TABLE.".brandID, ".BRAND_TABLE.".name, ".BRAND_TABLE.".hurl, ".PRODUCTS_TABLE.".canonical, ".CATEGORIES_TABLE.".hurl, ".BRAND_TABLE.".comment, ".PRODUCTS_TABLE.".h1, ".PRODUCTS_TABLE.".pole FROM ".PRODUCTS_TABLE." LEFT JOIN ".BRAND_TABLE." USING (brandID) JOIN ".CATEGORIES_TABLE." ON ".PRODUCTS_TABLE.".categoryID=".CATEGORIES_TABLE.".categoryID WHERE productID='".$productID."' and ".PRODUCTS_TABLE.".enabled='1'") or die (db_error()); ".PRODUCTS_TABLE.".pole. Но каким {$product_info[X]} выводить в product_detailed.tpl.html непойму.

Для product_brief еще запутанней ситуация :). Подскажите пожалуйста.
« Последнее редактирование: Марта 10, 2012, 12:48:41 pm от favn »

Оффлайн favn

  • Спец
  • ***
  • Сообщений: 121
    • Просмотр профиля
C product_detailed вроде разобрался.

А с какого php-файла и места надо брать выборку для product_brief , чтобы вывести значение из БД - SS_products новый столбец pole.

Похоже что из  category.php и выражение должно быть не {$product_info[X]}...
« Последнее редактирование: Марта 10, 2012, 07:08:12 pm от favn »

Оффлайн favn

  • Спец
  • ***
  • Сообщений: 121
    • Просмотр профиля
Вопрос всё еще актуален   :(

nictboom

  • Гость
Вопрос всё еще актуален   :(
Цитировать
Похоже что из  category.php и выражение должно быть не {$product_info[X]}...
вы сами почти ответили на свой вопрос, именно category.php(в двух местах, где происходит выборка товара из базы) и именно {$product_info[X]}(в product_brief.tpl.html)

Оффлайн Юрий

  • Старожил
  • ****
  • Сообщений: 322
    • Просмотр профиля
    • Во-Сток
Покажу наглядный пример. Особо не разбирался просто тупо добавил после

if (isset($_GET["show_all"]) || ($i>=$offset && $i<$offset+CONF_PRODUCTS_PER_PAGE))   {

Код:
$cq = db_query("SELECT name, hurl FROM ".CATEGORIES_TABLE." WHERE categoryID=".$row[0]) or die (db_error());
$c = db_fetch_row($cq);
$row[29] = $c[1];
$row[30] = $c[0];

В результате в основных категориях добавилась ссылка на категорию http://vo-stok.com.ua/catalog/zhenskaya/

...

Для решения вашей проблемы покопайтесь тут
$s = "SELECT categoryID, ".PRODUCTS_TABLE.".name, brief_description, customers_rating, Price, picture, in_stock, thumbnail, customer_votes, big_picture, list_price, productID, product_code, ".PRODUCTS_TABLE.".hurl, items_sold, ".PRODUCTS_TABLE.".brandID, ".BRAND_TABLE.".name, ".BRAND_TABLE.".hurl FROM ".PRODUCTS_TABLE." LEFT JOIN ".BRAND_TABLE." USING(brandID) WHERE enabled='1'";

и тут

$sql="SELECT ".PRODUCTS_TABLE.".categoryID, ".PRODUCTS_TABLE.".name, brief_description, customers_rating, Price, picture, in_stock, thumbnail, customer_votes, big_picture, list_price, ".PRODUCTS_TABLE.".productID, product_code, ".PRODUCTS_TABLE.".hurl, items_sold, ".PRODUCTS_TABLE.".brandID, ".BRAND_TABLE.".name, ".BRAND_TABLE.".hurl FROM ".PRODUCTS_TABLE.' LEFT JOIN '.CATEGORIY_PRODUCT_TABLE." USING(productID) LEFT JOIN ".BRAND_TABLE." USING(brandID) WHERE (".PRODUCTS_TABLE.".categoryID=".(int)$categoryID.' OR '.CATEGORIY_PRODUCT_TABLE.'.`productID` = `'.PRODUCTS_TABLE.'`.`productID` AND '.CATEGORIY_PRODUCT_TABLE.'.categoryID = '.(int)$categoryID.")  AND enabled='1' GROUP BY `".PRODUCTS_TABLE."`.`productID` ORDER BY ".PRODUCTS_TABLE.".".$_SESSION["sort"]." ".$_SESSION["order"];

« Последнее редактирование: Марта 12, 2012, 11:12:51 pm от Юрий »

Оффлайн favn

  • Спец
  • ***
  • Сообщений: 121
    • Просмотр профиля
Что только не делал, что только не подствлял - полный ппц. ) Извёлси весь. :)

Оффлайн Юрий

  • Старожил
  • ****
  • Сообщений: 322
    • Просмотр профиля
    • Во-Сток
Ну подставь код что я давал. Просто используй свои данные

$cq = db_query("SELECT pole FROM ".PRODUCTS_TABLE." WHERE productID=".$row[11]) or die (db_error());
$c = db_fetch_row($cq);
$row[29] = $c[0];

в результате в product_brief.tpl.html $product_info[29] = pole

Код лепишь сразу после проверки (там в 2-х местах)
if (isset($_GET["show_all"]) || ($i>=$offset && $i<$offset+CONF_PRODUCTS_PER_PAGE))


« Последнее редактирование: Марта 18, 2012, 01:59:04 pm от Юрий »

nictboom

  • Гость
дык, а какие проблемы проделать всё то же, что и в product_detailed.php.
добавили в двух строках, например:                 //show active products
               
                $sql="SELECT ".PRODUCTS_TABLE.".categoryID, ".PRODUCTS_TABLE.".name, brief_description, customers_rating, Price, picture, in_stock, thumbnail, customer_votes, big_picture, list_price, ".PRODUCTS_TABLE.".productID, product_code, ".PRODUCTS_TABLE.".hurl, items_sold, ".PRODUCTS_TABLE.".brandID, ".BRAND_TABLE.".name, ".BRAND_TABLE.".hurl, ".PRODUCTS_TABLE.".pole FROM ".PRODUCTS_TABLE.' LEFT JOIN '.CATEGORIY_PRODUCT_TABLE." USING(productID) LEFT JOIN ".BRAND_TABLE." USING(brandID) WHERE (".PRODUCTS_TABLE.".categoryID=".(int)$categoryID.' OR '.CATEGORIY_PRODUCT_TABLE.'.`productID` = `'.PRODUCTS_TABLE.'`.`productID` AND '.CATEGORIY_PRODUCT_TABLE.'.categoryID = '.(int)$categoryID.")  AND enabled='1' GROUP BY `".PRODUCTS_TABLE."`.`productID` ORDER BY ".PRODUCTS_TABLE.".".$_SESSION["sort"]." ".$_SESSION["order"];
и                //create a query for extracting products from subcategories
                $s = "SELECT categoryID, ".PRODUCTS_TABLE.".name, brief_description, customers_rating, Price, picture, in_stock, thumbnail, customer_votes, big_picture, list_price, productID, product_code, ".PRODUCTS_TABLE.".hurl, items_sold, ".PRODUCTS_TABLE.".brandID, ".BRAND_TABLE.".name, ".BRAND_TABLE.".hurl, ".PRODUCTS_TABLE.".pole FROM ".PRODUCTS_TABLE." LEFT JOIN ".BRAND_TABLE." USING(brandID) WHERE enabled='1'";
и добавили в 2-х местах, после                    if (isset($_GET["show_all"]) || ($i>=$offset && $i<$offset+CONF_PRODUCTS_PER_PAGE))
                        {
это $row[29] = $row[18];
в шаблоне вывели {$product_info[29]} и нет лишних запросов/селектов.

ps/хотя можно и сразу в шаблоне выводить {$product_info[18]}, без этой $row[29] = $row[18]; добавки.
« Последнее редактирование: Марта 18, 2012, 07:57:30 pm от nictboom »

Оффлайн favn

  • Спец
  • ***
  • Сообщений: 121
    • Просмотр профиля
Сделал как расписал Юрий. Всё вышло  :). Большое спасибо !!!

И всем вельми дзякую то помогал....