Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 24 Ответов
  • 1243 Просмотров
*

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
Здравствуйте! Как можна реализовать следующее: пользователь находится на карточке товара и видит список всех товаров из выбранной категории с похожей или одинаковой ценой? Есть идея напрямую вытягивать этот список из БД, но не знаю как засунуть запрос сюда
Код
<div class="jshop_list_product">
    <table class = "jshop list_related">
        <?php foreach($this->related_prod as $k=>$product){?> 
            <?php if ($k%$in_row==0) print "<tr>";?>
            <td width="<?php print 100/$in_row?>%" class="jshop_related">
                <?php include(dirname(__FILE__)."/../".$this->folder_list_products."/".$product->template_block_product);?>
            </td>
            <?php if ($k%$in_row==$in_row-1) print "</tr>";?>   
        <?php }?>
        <?php if ($k%$in_row!=$in_row-1) print "</tr>";?>
    </table>
    </div>
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
во-первых, вы говорите о карточке товара, а показываете шаблон не карточки товара.
во-вторых, в чем именно проблема "засунуть запрос сюда" или в принципе куда угодно?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
во-первых, вы говорите о карточке товара, а показываете шаблон не карточки товара.
во-вторых, в чем именно проблема "засунуть запрос сюда" или в принципе куда угодно?
Вы правы, немного ошибся, код из модуля "Сопутствующие".
Здесь этот модуть и подключается
Код
<?php
    print $this->_tmp_product_html_before_related;
    include(dirname(__FILE__)."/related.php");
    print $this->_tmp_product_html_before_review;
    include(dirname(__FILE__)."/review.php");
?>
А как мне вывести (возможно типа "$query = "SELECT * FROM `m06wr_jshopping_products` WHERE `product_price` LIKE '3227'") список товаров с одинаковой ценой?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну так вы же сами пишите какой нужен запрос. его и делайте. я честно, просто не пойму в чем именно проблема :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
ну так вы же сами пишите какой нужен запрос. его и делайте. я честно, просто не пойму в чем именно проблема :)
Вопрос в том "как написать вывод товаров с одинаковой ценой"?
Код
$query = "SELECT * FROM `m06wr_jshopping_products` WHERE `product_price` LIKE '2000'";
echo $query;
Я вписываю этот код в карточку товара и в карточке отобразяться список товаров с ценой "2000"?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
нет конечно :) выведет
Цитировать
SELECT * FROM `m06wr_jshopping_products` WHERE `product_price` LIKE '2000'

почитайте, как работать с базой данных в Joomla
Код
$db = JFactory::getDBO();
и так далее
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
нет конечно :) выведет
почитайте, как работать с базой данных в Joomla
Код
$db = JFactory::getDBO();
и так далее
Ок, сделал по аналогии с примером
Код
$db = JFactory::getDbo();
$query = $db->getQuery(true);
 
$query
    ->select($db->quoteName(array('product_id', 'product_price', 'product_thumb_image', 'ordering')))
    ->from($db->quoteName('#__jshopping_products'))
    ->where($db->quoteName('product_price'). ' LIKE '. $db->quote('\'2125%\''))
    ->order('ordering ASC');
 
$db->setQuery($query);
$results = $db->loadObjectList();
print_r($results);
Но вообще ничего не выводит. Подскажите, пожалуйста, как исправить код?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
уберите \'
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
уберите \'
Так $db->quote('2125'))?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
нет, не так. уберите только \'
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
нет, не так. уберите только \'
$db->quote('185%'))
Без результатов
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
а так
Код
->where($db->quoteName('product_price'). ' LIKE "2125%"')
?

P.S. а что значит вообще ничего не выводит? именно вообще ничего? пустота?
« Последнее редактирование: 11.09.2015, 12:35:39 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
Давайте еще раз.
Задание - вывести товары у которых id равен 185 (потом переделаю под product_price).
Код
Код
$db = JFactory::getDbo();
$query = $db->getQuery(true);
 
$query
    ->select($db->quoteName(array('product_id', 'product_price', 'product_thumb_image', 'ordering')))
    ->from($db->quoteName('#__jshopping_products'))
    ->where($db->quoteName('product_id'). ' LIKE '. $db->quote('185'))
    ->order('ordering ASC');
 
$db->setQuery($query);
$results = $db->loadObjectList();
print_r($results);
В результате совсем ничего не выводится.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
а вы это вообще где делаете? сделайте после этого кода
Код
print_r($query->__toString());
что выведет?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
а вы это вообще где делаете? сделайте после этого кода
Код
print_r($query->__toString());
что выведет?
SELECT `product_id`,`product_price`,`product_thumb_image`,`ordering` FROM `#__jshopping_products` WHERE `product_id` LIKE '185%' ORDER BY ordering ASC
*

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
SELECT `product_id`,`product_price`,`product_thumb_image`,`ordering` FROM `#__jshopping_products` WHERE `product_id` LIKE '185%' ORDER BY ordering ASC
Разобрался, большое спасибо!
Код выборки по всем товарам
Код
SELECT `product_id` , `name_ru-RU` , `product_price` , `product_thumb_image`
FROM `m06wr_jshopping_products`
WHERE `product_price`
BETWEEN '8000'
AND '9000'
LIMIT 0 , 30
1) Как изменить чтобы была выборка по текущей категории в которую входит текущий товар (так как нюанс в том, что категории "сидят" в другой таблице products_to_categories).
2) Как получить имя товара?
   Думал так "print_r($results[0]->product_thumb_image);", но когда меняю переменную вместо "product_thumb_image" на "name_ru-RU" выводит "0".
« Последнее редактирование: 11.09.2015, 15:30:47 от tomas_morgam »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
1. гуглите про LEFT JOIN
2. гуглите про тире в названии свойства объекта
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
1. гуглите про LEFT JOIN
2. гуглите про тире в названии свойства объекта
Про тире разобрался, а вот с LEFT JOIN не выходит.
Вот мой запрос
Код
SELECT `name_ru-RU` , `product_price` , `product_thumb_image`
FROM `m06wr_jshopping_products` AS prod
LEFT JOIN `m06wr_jshopping_products_to_categories` AS pr_cat ON pr_cat.`product_id` = prod.`product_id`
WHERE `product_price`
BETWEEN '8000'
AND '9000'
Запрос работает, выборка цены идет, но подтягиваются все товары, а не товары текущей категории в которую входит текущий товар.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну так а где в запросе указано, из какой категории?
Код
WHERE pr_cat.category_id = 'нужный id категории' AND `product_price`...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
ну так а где в запросе указано, из какой категории?
Код
WHERE pr_cat.category_id = 'нужный id категории' AND `product_price`...
Указываю статически - ничего не выводиться, хотя такая категория есть.
Код
SELECT `name_ru-RU` , `product_price` , `product_thumb_image`
FROM `m06wr_jshopping_products` AS prod
LEFT JOIN `m06wr_jshopping_products_to_categories` AS pr_cat ON pr_cat.`product_id` = prod.`product_id`
WHERE pr_cat.category_id = '250' AND `product_price` BETWEEN '8000' AND '9000'
Но это не совсем то, мне нужно чтоб динамически - в карточке товара вывести товары только этой категории похожие по цене.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну так вставьте категорию данного товара, в чем проблема?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
ну так вставьте категорию данного товара, в чем проблема?
Проблема в том, как изменить sql запрос, так как не получается вставить текущую категорию данного товара.
« Последнее редактирование: 14.09.2015, 11:23:20 от tomas_morgam »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
не получается вставить текущую категорию данного товара.
по какой причине?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

tomas_morgam

  • Захожу иногда
  • 126
  • 0 / 0
по какой причине?
Недостаточного опыта работы с прямыми sql запросами к базе.
Если проще, как изменить запрос (код указал выше) чтобы работала выборка по текущей категории?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ааа, понятно. подумал, что вставляете, и ошибка какая то.

в карточке товара категория товара находится в $this->category_id
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывести определённую характеристику отдельно от списка характеристик товара

Автор Silent_Breeze

Ответов: 52
Просмотров: 9885
Последний ответ 23.11.2023, 12:31:08
от YuryNew
Получить и вывести Статус заказов списком

Автор IgorGeneralov

Ответов: 5
Просмотров: 1218
Последний ответ 25.01.2023, 23:04:05
от IgorGeneralov
Вывод характеристик товара в списке товаров (категории)

Автор voland

Ответов: 4
Просмотров: 2188
Последний ответ 17.09.2022, 13:21:03
от victorantoniak
Вывести в списке товаров атрибуты

Автор Taatshi

Ответов: 41
Просмотров: 9117
Последний ответ 17.02.2020, 17:12:16
от resens
Как вынести атрибуты в список товаров?

Автор 3axap-superstar

Ответов: 65
Просмотров: 16293
Последний ответ 08.01.2020, 15:38:06
от warlocksp