Здравствуйте!
Помогите разобраться, я не очень силен в запросах php в БД.
Если у товара нет атрибутов, то при запросе вываливается в ошибку:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 3
Посмотрел логи, ругается на файл вывода товара в JoomShopping - product_default.php
Файл в шаблоне, кастомизирован.
Строка, которая глюкавит:
->where($db->quoteName('attr_id'). ' IN (' . implode(',', $attrs). ')');
Как бы сделать так, чтобы если нет атрибутов товара, то он не обрабатывал эту строку, а если есть атрибут, то выводил.
Весь кусок кода из шаблона:
<?php
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
->select('*')
->from($db->quoteName('#__jshopping_products_attr'))
->where($db->quoteName('product_id'). ' = '. $db->quote($product->product_id));
$db->setQuery($query);
$productAttrs = $db->loadObjectList();
foreach ($productAttrs as $prodAttrs) {
foreach ($prodAttrs as $key => $value)
if ((strpos($key, 'attr') === 0) && ($value != 0)) {
$attrs[] = substr($key, 5);
$values[] = $value;
$product->options[$prodAttrs->product_attr_id]['attrs'][substr($key, 5)] = $value;
}
$product->options[$prodAttrs->product_attr_id]['price'] = $prodAttrs->price;
$product->options[$prodAttrs->product_attr_id]['manufacturer_code'] = $prodAttrs->manufacturer_code;
}
$query = $db->getQuery(true);
$query
->select($db->quoteName(array('attr_id', 'name_ru-RU', 'description_ru-RU'), array('id', 'name', 'description')))
->from($db->quoteName('#__jshopping_attr'))
[b] ->where($db->quoteName('attr_id'). ' IN (' . implode(',', $attrs). ')');[/b]
$db->setQuery($query);
$attrs = $db->loadObjectList('id');
$query = $db->getQuery(true);
$query
->select($db->quoteName(array('value_id', 'name_ru-RU'), array('id', 'name')))
->from($db->quoteName(array('#__jshopping_attr_values')))
->where($db->quoteName('value_id'). ' IN (' . implode(',', $values). ')');
$db->setQuery($query);
$values = $db->loadObjectList('id');
?>
Весь файл в приложении.
Помогите, пожалуйста.