Помогите с mysql запросом для VM

Статус
В этой теме нельзя размещать новые ответы.

angel_sia

Гуру форума
Регистрация
7 Окт 2012
Сообщения
252
Реакции
92
Добрый день товарищи.
Бьюсь с одой проблемой больше месяца не могу найти даже примерного решения моей проблемы.
Мне надо настроить вывод дополнительных параметров в virtuemart в модуле Related Products.
Нашел как добавить вывод дополнительно цены только.
Вот кусок по выводу цены.
Скрытое содержимое доступно для зарегистрированных пользователей!

Хотелось бы чтоб у меня выводилось также
product_sku + product_name + product_s_desc + manufacturer + product_price

П.с. product_name выводится по умолчанию.
П.с.с. На всякий случай весь кусок кода

Скрытое содержимое доступно для зарегистрированных пользователей!


update:
На всякий случай добавлю что где находится в базе.
Скрытое содержимое доступно для зарегистрированных пользователей!



Буду очень признателен за помощь.

UPD: Вопрос решен Спасибо!
 
Последнее редактирование модератором:
за основу взять след. запрос
Код:
SELECT
   prices.`product_price`,
   products.`product_sku`,
   products_ru.`product_name`,
   products_ru.`product_s_desc`,
   manufacts_ru.`mf_name`
FROM j25_virtuemart_product_prices prices
  LEFT JOIN j25_virtuemart_products products
  ON products.virtuemart_product_id = prices.virtuemart_product_id
  LEFT JOIN j25_virtuemart_products_ru_ru products_ru
  ON products_ru.virtuemart_product_id = prices.virtuemart_product_id
  LEFT JOIN j25_virtuemart_product_manufacturers pm
  ON pm.virtuemart_product_id = products_ru.virtuemart_product_id
  LEFT JOIN j25_virtuemart_manufacturers manufacts
        ON manufacts.virtuemart_manufacturer_id = pm.virtuemart_manufacturer_id
  LEFT JOIN j25_virtuemart_manufacturers_ru_ru manufacts_ru
        ON manufacts.virtuemart_manufacturer_id = manufacts_ru.virtuemart_manufacturer_id
WHERE prices.`virtuemart_product_id`= {ТВОЙ ИД}
проверить его либо в phpmyadmin, либо в heidisql

в вывод вставить...
Код:
defined ( '_JEXEC' ) or die ( 'Restricted access' );
?>
<div class="product-related-products">
<h4><?php echo JText::_('COM_VIRTUEMART_RELATED_PRODUCTS'); ?></h4>

<?php
foreach ($this->product->customfieldsRelatedProducts as $field) {
$db = JFactory::getDBO();
$qt='
SELECT
   prices.`product_price`,
   products.`product_sku`,
   products_ru.`product_name`,
   products_ru.`product_s_desc`,
   manufacts_ru.`mf_name`
FROM #_virtuemart_product_prices prices
  LEFT JOIN #_virtuemart_products products
  ON products.virtuemart_product_id = prices.virtuemart_product_id
  LEFT JOIN #_virtuemart_products_ru_ru products_ru
  ON products_ru.virtuemart_product_id = prices.virtuemart_product_id
  LEFT JOIN #_virtuemart_product_manufacturers pm
  ON pm.virtuemart_product_id = products_ru.virtuemart_product_id
  LEFT JOIN #_virtuemart_manufacturers manufacts
        ON manufacts.virtuemart_manufacturer_id = pm.virtuemart_manufacturer_id
  LEFT JOIN #_virtuemart_manufacturers_ru_ru manufacts_ru
        ON manufacts.virtuemart_manufacturer_id = manufacts_ru.virtuemart_manufacturer_id
FROM `#__virtuemart_product_prices` WHERE `virtuemart_product_id` = '.$field->custom_value.'';
$db->setQuery($qt); $result = $db->loadResult();

print_r($result); // посмотреть как выводятся поля

$sena = $this->currency->getSymbol();

?>
<div class="product-field product-field-type-<?php echo $field->field_type ?>" style="text-align: left; float:left; width: 100%">
<span class="product-field-display" style="text-align: left"><?php echo $field->display ?></span>
<span class="product-field-desc"><?php echo jText::_($field->custom_field_desc) ?></span>
<?php echo $this->currency->createPriceDiv ('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $result) ?></div>

<?php echo $result->price; // примерно так вывод должен выглядеть  ?>

?>

<?php } ?>
</div>

это примерный план действий...более конкретно конечно надо уже в коде смотреть
 
Последнее редактирование:
да, пиши, буду рад помочь и лайки ставь, если не жалко :)

Код:
<div class="product-field product-field-type-<?php echo $field->field_type ?>" style="text-align: left; float:left; width: 100%">
<span class="product-field-display" style="text-align: left"><?php echo $field->display ?></span>
<span class="product-field-desc"><?php echo jText::_($field->custom_field_desc) ?></span>
Изначально вот эта часть выводит изображение и (product_name). Смысл делать сам запрос в бд на него видимо нету я так предполагаю.
 
если только про вывод...там еще артикул есть (product_sku)
 
если только про вывод...там еще артикул есть (product_sku)

Это да :).
Попробовал понял что надо разобраться просто. Вывод сейчас на страничку идет только картинку и имя товара опять же из выше перечисленных строк.

Вот такой изначальный код был у меня:
Тут выводится картинка товара и его имя.
Код:
<?php
/**
 *
 * Show the product details page
 *
 * @package    VirtueMart
 * @subpackage
 * @author Max Milbers, Valerie Isaksen

 * @link http://www.virtuemart.net
 * @copyright Copyright (c) 2004 - 2010 VirtueMart Team. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
 * VirtueMart is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * @version $Id: default_relatedproducts.php 6431 2012-09-12 12:31:31Z alatak $
 */

// Check to ensure this file is included in Joomla!
defined ( '_JEXEC' ) or die ( 'Restricted access' );
?>
        <div class="product-related-products">
<h4><?php echo JText::_('COM_VIRTUEMART_RELATED_PRODUCTS'); ?></h4>

<?php
foreach ($this->product->customfieldsRelatedProducts as $field) {
?>

<div class="product-field product-field-type-<?php echo $field->field_type ?>" style="text-align: left; float:left; width: 100%">
<span class="product-field-display" style="text-align: left"><?php echo $field->display ?></span>
<span class="product-field-desc"><?php echo jText::_($field->custom_field_desc) ?></span>



<?php } ?>
</div>

Для вывода цены было добавлено данный код который нашел на просторах.
Код:
$db = JFactory::getDBO();
$qt='SELECT `product_price` FROM `#__virtuemart_product_prices`   WHERE `virtuemart_product_id` = '.$field->custom_value.'';
$db->setQuery($qt); $result = $db->loadResult(); $sena = $this->currency->getSymbol();

//вывод - <?php echo $this->currency->createPriceDiv ('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $result) ?>
 
Код:
$qt='...//ставь новый запрос
print_r($result);
 
после раскапывания исходников вирта выкладываем решение...
файл
Код:
components/com_virtuemart/views/productdetails/tmpl/default_relatedproducts.php
код
Код:
<?php
/**
 *
 * Show the product details page
 *
 * @package   VirtueMart
 * @subpackage
 * @author Max Milbers, Valerie Isaksen

 * @link http://www.virtuemart.net
 * @copyright Copyright (c) 2004 - 2010 VirtueMart Team. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
 * VirtueMart is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * @version $Id: default_relatedproducts.php 6431 2012-09-12 12:31:31Z alatak $
 */

// Check to ensure this file is included in Joomla!
defined ( '_JEXEC' ) or die ( 'Restricted access' );
?>
  <div class="product-related-products">
<h4><?php echo JText::_('COM_VIRTUEMART_RELATED_PRODUCTS'); ?></h4>

<?php
foreach ($this->product->customfieldsRelatedProducts as $field) {
$db = JFactory::getDBO();
//$qt='SELECT `product_price` FROM `#__virtuemart_product_prices`  WHERE `virtuemart_product_id` = '.$field->custom_value.'';
$qt = 'SELECT prices.`product_price`,
        products.`product_sku`,
        products_ru.`product_name`,
        products_ru.`product_s_desc`,
        manufacts_ru.`mf_name`
   FROM `#__virtuemart_product_prices` as prices
     LEFT JOIN `#__virtuemart_products` as products
        ON products.virtuemart_product_id = prices.virtuemart_product_id
     LEFT JOIN `#__virtuemart_products_en_gb` as products_ru
        ON products_ru.virtuemart_product_id = prices.virtuemart_product_id
     LEFT JOIN `#__virtuemart_product_manufacturers` as pm
        ON pm.virtuemart_product_id = products_ru.virtuemart_product_id
     LEFT JOIN `#__virtuemart_manufacturers` as manufacts
        ON manufacts.virtuemart_manufacturer_id = pm.virtuemart_manufacturer_id
     LEFT JOIN `#__virtuemart_manufacturers_en_gb` as manufacts_ru
        ON manufacts.virtuemart_manufacturer_id = manufacts_ru.virtuemart_manufacturer_id
  WHERE prices.`virtuemart_product_id`='.$field->custom_value.'';
   $db->setQuery($qt);   
   //$result = $db->loadResult();
   $result = $db->loadAssoc();   
   $sena = $this->currency->getSymbol();

?>
<div class="product-field product-field-type-<?php echo $field->field_type ?>" style="text-align: left; float:left; width: 100%">
   <span class="product-field-display" style="text-align: left"><?php echo $field->display ?></span>
   <span class="product-field-desc"><?php echo jText::_($field->custom_field_desc) ?></span>
   
   <?php echo $this->currency->createPriceDiv ('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $result['product_price']) ?></div>
   
   <span class="product-field-display" style="text-align: left"><?php echo $result['product_name'] ?></span>
   <br />
   <span class="product-field-display" style="text-align: left"><?php echo $result['product_sku'] ?></span>
   <br />
   <span class="product-field-display" style="text-align: left"><?php echo $result['product_s_desc'] ?></span>
   <br />
   <span class="product-field-display" style="text-align: left"><?php echo $result['mf_name'] ?></span>
<?php } ?>
</div>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху