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

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: Правильность синтаксиса запроса
« Ответ #30 : 29.08.2017, 17:20:03 »
Сделай вот так...
Код
<?php
/**
 * @package     SP Simple Portfolio
 * @subpackage  mod_spsimpleportfolio
 *
 * [member=126442]copyright[/member]   Copyright (C) 2010 - 2017 JoomShaper. All rights reserved.
 * @license     GNU General Public License version 2 or later.
 */

defined('_JEXEC') or die;

class ModSpsimpleportfolioHelper {

public static function getItems($params) {

$db = JFactory::getDbo();
$query = $db->getQuery(true);

$query->select('a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on')
->from($db->quoteName('#__spsimpleportfolio_items', 'a'))
->where($db->quoteName('a.published'). ' = 1');
//has category
if ($params->get('spsimpleportfolio_tags')) {
$query->where('a.tagids IN('.implode(',', $params->get('spsimpleportfolio_tags')).')');
}
$query->where($db->quoteName('a.access')." IN (" . implode( ',', JFactory::getUser()->getAuthorisedViewLevels() ). ")")
->order($db->quoteName('a.ordering'). ' ASC')
->setLimit($params->get('limit', 6));

                echo (string)$query;
                return array();

// $db->setQuery($query);

// $items = $db->loadObjectList();

// Items Model
jimport('joomla.application.component.model');
JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_spsimpleportfolio/models');
$itemsModel = JModelLegacy::getInstance('Items', 'SpsimpleportfolioModel');

$i = 0;
foreach ($items as $key => & $item) {
$tags = $itemsModel->getItemTags($item->tagids);
$newtags = array();
$filter = '';
$groups = array();

foreach ($tags as $tag) {
$newtags[] = $tag->title;
$filter .= ' ' . $tag->alias;
$groups[] .= '"' . $tag->alias . '"';
}

$item->groups = implode(',', $groups);
$item->tags = $newtags;

// Sizes
$square = strtolower($params->get('square', '600x600'));
$rectangle = strtolower($params->get('rectangle', '600x400'));
$tower = strtolower($params->get('tower', '600x800'));
$sizes = array(
$rectangle,
$tower,
$square,
$tower,
$rectangle,
$square,
$square,
$rectangle,
$tower,
$square,
$tower,
$rectangle
);

$thumb_type = $params->get('thumbnail_type', 'masonry');
if($thumb_type == 'masonry') {
$item->thumb = JURI::base(true). '/images/spsimpleportfolio/' . $item->alias . '/' . JFile::stripExt(JFile::getName($item->image)). '_' . $sizes[$i] . '.' . JFile::getExt($item->image);
} else if($thumb_type == 'rectangular') {
$item->thumb = JURI::base(true). '/images/spsimpleportfolio/' . $item->alias . '/' . JFile::stripExt(JFile::getName($item->image)). '_'. $rectangle .'.' . JFile::getExt($item->image);
} else {
$item->thumb = JURI::base(true). '/images/spsimpleportfolio/' . $item->alias . '/' . JFile::stripExt(JFile::getName($item->image)). '_'. $square .'.' . JFile::getExt($item->image);
}

// Получаем стандартный URL (не забыть переписать на файле шаблона $this->item->url)
//$item->url = JRoute::_('index.php?option=com_spsimpleportfolio&view=item&id='. $item->id . ':' . $item->alias . self::getItemid());
$item->urllink = JRoute::_('index.php?option=com_spsimpleportfolio&view=item&id='. $item->id . ':' . $item->alias . self::getItemid());

$i++;
if($i==11) {
$i = 0;
}
}

return $items;
}

public static function getItemid() {
$db = JFactory::getDbo();

$query = $db->getQuery(true);
$query->select($db->quoteName(array('id')));
$query->from($db->quoteName('#__menu'));
$query->where($db->quoteName('link'). ' LIKE '. $db->quote('%option=com_spsimpleportfolio&view=items%'));
$query->where($db->quoteName('published'). ' = '. $db->quote('1'));
$db->setQuery($query);
$result = $db->loadResult();

if(count($result)) {
return '&Itemid=' . $result;
}

return;
}

}
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #31 : 29.08.2017, 17:53:20 »
<?php
/**
 * @package     SP Simple Portfolio
 * @subpackage  mod_spsimpleportfolio
 *
 * @copyright   Copyright (C) 2010 - 2017 JoomShaper. All rights reserved.
 * @license     GNU General Public License version 2 or later.
 */

defined('_JEXEC') or die;

class ModSpsimpleportfolioHelper {

public static function getItems($params) {

$db = JFactory::getDbo();
$query = $db->getQuery(true);

$query->select('a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on')
->from($db->quoteName('#__spsimpleportfolio_items', 'a'))
->where($db->quoteName('a.published'). ' = 1');
//has category
if ($params->get('spsimpleportfolio_tags')) {
$query->where('a.tagids IN('.implode(',', $params->get('spsimpleportfolio_tags')).')');
}
$query->where($db->quoteName('a.access')." IN (" . implode( ',', JFactory::getUser()->getAuthorisedViewLevels() ). ")")
->order($db->quoteName('a.ordering'). ' ASC')
->setLimit($params->get('limit', 6));

                echo (string)$query;
                return array();

// $db->setQuery($query);

// $items = $db->loadObjectList();

// Items Model
jimport('joomla.application.component.model');
JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_spsimpleportfolio/models');
$itemsModel = JModelLegacy::getInstance('Items', 'SpsimpleportfolioModel');

$i = 0;
foreach ($items as $key => & $item) {
$tags = $itemsModel->getItemTags($item->tagids);
$newtags = array();
$filter = '';
$groups = array();

foreach ($tags as $tag) {
$newtags[] = $tag->title;
$filter .= ' ' . $tag->alias;
$groups[] .= '"' . $tag->alias . '"';
}

$item->groups = implode(',', $groups);
$item->tags = $newtags;

// Sizes
$square = strtolower($params->get('square', '600x600'));
$rectangle = strtolower($params->get('rectangle', '600x400'));
$tower = strtolower($params->get('tower', '600x800'));
$sizes = array(
$rectangle,
$tower,
$square,
$tower,
$rectangle,
$square,
$square,
$rectangle,
$tower,
$square,
$tower,
$rectangle
);

$thumb_type = $params->get('thumbnail_type', 'masonry');
if($thumb_type == 'masonry') {
$item->thumb = JURI::base(true). '/images/spsimpleportfolio/' . $item->alias . '/' . JFile::stripExt(JFile::getName($item->image)). '_' . $sizes[$i] . '.' . JFile::getExt($item->image);
} else if($thumb_type == 'rectangular') {
$item->thumb = JURI::base(true). '/images/spsimpleportfolio/' . $item->alias . '/' . JFile::stripExt(JFile::getName($item->image)). '_'. $rectangle .'.' . JFile::getExt($item->image);
} else {
$item->thumb = JURI::base(true). '/images/spsimpleportfolio/' . $item->alias . '/' . JFile::stripExt(JFile::getName($item->image)). '_'. $square .'.' . JFile::getExt($item->image);
}

// Получаем стандартный URL (не забыть переписать на файле шаблона $this->item->url)
//$item->url = JRoute::_('index.php?option=com_spsimpleportfolio&view=item&id='. $item->id . ':' . $item->alias . self::getItemid());
$item->urllink = JRoute::_('index.php?option=com_spsimpleportfolio&view=item&id='. $item->id . ':' . $item->alias . self::getItemid());

$i++;
if($i==11) {
$i = 0;
}
}

return $items;
}

public static function getItemid() {
$db = JFactory::getDbo();

$query = $db->getQuery(true);
$query->select($db->quoteName(array('id')));
$query->from($db->quoteName('#__menu'));
$query->where($db->quoteName('link'). ' LIKE '. $db->quote('%option=com_spsimpleportfolio&view=items%'));
$query->where($db->quoteName('published'). ' = '. $db->quote('1'));
$db->setQuery($query);
$result = $db->loadResult();

if(count($result)) {
return '&Itemid=' . $result;
}

return;
}

}
Неа - 1064
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #32 : 29.08.2017, 19:05:58 »
$query->where($db->qn('a.tagids')." = ".$db->quote( $params->get('category_id') ));
Что можете предложить?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Правильность синтаксиса запроса
« Ответ #33 : 29.08.2017, 19:10:16 »
прям как в ресторане... что можете предложить... :) можем предложить включить отладку в настройках жумлы, и все таки сказать какая именно 1064
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #34 : 29.08.2017, 19:14:36 »
прям как в ресторане... что можете предложить... :) можем предложить включить отладку в настройках жумлы, и все таки сказать какая именно 1064
))) если бы были ошибки я бы не томил вас "голодом". Ничего невидно, просто 1064. Сейчас сижу и разбирась
Предположительно, проблема может быть связана с тем, что не происходит связи 2-х таблиц _spsimpleportfolio_items и _spsimpleportfolio_tags
т.е. данные (id, title) из таблицы _spsimpleportfolio_tags получили, а вот поиск и сравнение данных (tagids) с таблице _spsimpleportfolio_items не проводится...
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Правильность синтаксиса запроса
« Ответ #35 : 29.08.2017, 19:17:11 »
Ничего невидно, просто 1064. Сейчас сижу и разбирась
ну отладку же включите. не показ ошибок, хотя их тоже, а именно отладку
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #36 : 29.08.2017, 22:01:25 »
Из-за шаблона FLEX, не смог получить данные об ошибке 1064
Поменял на Beez3
Вот детали:
#1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '10,6) AND `a`.`access` IN (1,1,5) ORDER BY `a`.`ordering` ASC LIMIT 6' at line 3 SQL=SELECT a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on FROM `#__spsimpleportfolio_items` AS `a` WHERE `a`.`published` = 1 AND a.tagids IN(,10,6) AND `a`.`access` IN (1,1,5) ORDER BY `a`.`ordering` ASC LIMIT 6
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #37 : 29.08.2017, 22:14:50 »
Из-за шаблона FLEX, не смог получить данные об ошибке 1064
Поменял на Beez3
Вот детали:
#1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '10,6) AND `a`.`access` IN (1,1,5) ORDER BY `a`.`ordering` ASC LIMIT 6' at line 3 SQL=SELECT a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on FROM `#__spsimpleportfolio_items` AS `a` WHERE `a`.`published` = 1 AND a.tagids IN(,10,6) AND `a`.`access` IN (1,1,5) ORDER BY `a`.`ordering` ASC LIMIT 6

В данном случае, проблема из-за наличия пустого значения в массиве a.tagids IN(,10,6)
Это потому что в XML файле прописано следующее
Код
<field name="spsimpleportfolio_tags" type="spsimpleportfoliotags" label="MOD_SPSIMPLEPORTFOLIO_CATEGORY" multiple="multiple" class="input-xxlarge" description="MOD_SPSIMPLEPORTFOLIO_CATEGORY">
<option value="">MOD_SPSIMPLEPORTFOLIO_CATEGORY_ALL</option>
</field>
Зашел в модуль и удалил All category, оставил только существующие метки
Новая ошибка появилась:

#1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') ORDER BY id ASC' at line 3 SQL=SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN () ORDER BY id ASC
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #38 : 29.08.2017, 22:19:42 »
Код
$query->where('a.tagids IN('.implode(',', array_filter($params->get('category_id'))).')');
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #39 : 30.08.2017, 09:08:41 »
Код
$query->where('a.tagids IN('.implode(',', array_filter($params->get('category_id'))).')');

#1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') ORDER BY id ASC' at line 3 SQL=SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN () ORDER BY id ASC
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Правильность синтаксиса запроса
« Ответ #40 : 30.08.2017, 09:19:54 »
ну не может же IN() быть пустым. проверяйте, что возвращает $params->get('category_id')
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #41 : 30.08.2017, 10:46:08 »
проверяйте, что возвращает $params->get('category_id')
Тут уже что-то другое, связанное с путыми id
WHERE `id` IN ()
ТС, а вы вот это
                echo (string)$query;
                return array();
убрали?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #42 : 30.08.2017, 14:31:57 »
echo (string)$query;
                return array();
Убрал.
Ничего нету.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Правильность синтаксиса запроса
« Ответ #43 : 30.08.2017, 14:37:04 »
ну что подставляется в WHERE `id` IN (...)? что там в этом IN должно быть? смотрите, что передается туда, и почему оно пустое.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #44 : 30.08.2017, 14:50:47 »
ну что подставляется в WHERE `id` IN (...)? что там в этом IN должно быть? смотрите, что передается туда, и почему оно пустое.

Такс...
Решил проверить в БД, вносит ли под название, все ок. Вот исходный вид:
{"show_filter":"0","spsimpleportfolio_tags":["10","6","7"],"layout_type":"gallery_space","columns":"3","thumbnail_type":"rectangular","limit":"6","layout":"_:default","moduleclass_sfx":"","cache":"1","cache_time":"900","module_tag":"div","bootstrap_size":"0","header_tag":"h3","header_class":"","style":"0"}

Решил проверить вывод переменных в шаблоне
Код
<?php print_r($params->get('spsimpleportfolio_tags')); ?>
Результат: Array ([0]=> 10 [1] => 6 [2] => 7 )

Данные подхватываются - это хорошо!

Решил проверить данную переменную в самом условии, может там что-то не так...
Код
if ($params->get('spsimpleportfolio_tags')!= '') {
print_r($params->get('spsimpleportfolio_tags'));
// $query->where('a.tagids IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
}

Результат: Array ([0] => 10 [1] => 6 [2] => 7 )

Напрашивается вопрос: Почему не подхватывает в самом условии?? :o
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #45 : 30.08.2017, 14:54:00 »
Не tagids, а id. Повнимательнее посмотрите, что вы сами написали
WHERE `id` IN ()
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Правильность синтаксиса запроса
« Ответ #46 : 30.08.2017, 14:58:01 »
ТС, Роберт же об этом еще раньше сказал. вы условие показываете одно
Цитировать
$query->where('a.tagids IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
а ошибка в запросе у вас совсем в другом месте
Цитировать
WHERE `id` IN () ORDER BY id ASC

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

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #47 : 30.08.2017, 14:59:02 »
Не tagids, а id. Повнимательнее посмотрите, что вы сами написали

Код
if ($params->get('spsimpleportfolio_tags')!= '') {
print_r($params->get('spsimpleportfolio_tags'));
$query->where('a.id IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
}

#1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') ORDER BY id ASC' at line 3 SQL=SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN () ORDER BY id ASC
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Правильность синтаксиса запроса
« Ответ #48 : 30.08.2017, 15:00:53 »
а я уже вам не верю :) вы и сейчас разное показываете. в условии a.id, а в запросе просто id. а так не бывает :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #49 : 30.08.2017, 15:04:37 »
а я уже вам не верю :) вы и сейчас разное показываете. в условии a.id, а в запросе просто id. а так не бывает :)
что-то я перепил много "кода" ;D
Код
$query->where('id IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
ничего
#1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') ORDER BY id ASC' at line 3 SQL=SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN () ORDER BY id ASC
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #50 : 30.08.2017, 15:06:29 »
 ;D, я не хотел сказать, что надо менять tagids на id. Я имел в виду то, что ошибка теперь идет уже от другого запроса.
Смотрите, у вас сначала была проблема с запросом
Код
SELECT a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on FROM `#__spsimpleportfolio_items` AS `a` WHERE `a`.`published` = 1 AND a.tagids IN(,10,6) AND `a`.`access` IN (1,1,5) ORDER BY `a`.`ordering` ASC LIMIT 6
, а теперь ошибку вызывает уже запрос
Код
SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN () ORDER BY id ASC
« Последнее редактирование: 30.08.2017, 15:09:44 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Правильность синтаксиса запроса
« Ответ #51 : 30.08.2017, 15:08:02 »
само собой :) я и так вижу, что из другого. а при этом
Код
var_dump($params->get('spsimpleportfolio_tags'));
что у нас показывает? только вот именно в том месте, где
Код
$query->where('id IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
делаете, а не где то еще.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #52 : 30.08.2017, 15:09:15 »
var_dump($params->get('spsimpleportfolio_tags'));

Код
array(3) { [0]=> string(2) "10" [1]=> string(1) "6" [2]=> string(1) "7" }

Массив видет.

ID тегов подхватываются из таблицы #_spsimpleportfolio_tags и потом происходит выборка по столбцу tagids в таблице #_spsimpleportfolio_items
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #53 : 30.08.2017, 15:12:33 »
только вот именно в том месте, где
Код
$query->where('id IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
;D Это был тот же старый запрос, просто ТС с перепуга поменял a.tagids на id ;D.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Правильность синтаксиса запроса
« Ответ #54 : 30.08.2017, 15:13:46 »
Массив видет.
ну вот то, что вы показываете - оно как то не сходится. ладно, хорошо. что будет если вместо
Код
$query->where('id IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
сделать
Код
$query->where('id IN(10,6,7)');
? будет ошибка?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #55 : 30.08.2017, 15:16:08 »
$query->where('id IN(10,6,7)');

#1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') ORDER BY id ASC' at line 3 SQL=SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN () ORDER BY id ASC

Даже вот так, для полноты картины
Код
$query->where('id IN111('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
#1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'IN111(10,6,7) AND `a`.`access` IN (1,1,5) ORDER BY `a`.`ordering` ASC LIMIT 6' at line 3 SQL=SELECT a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on FROM `#__spsimpleportfolio_items` AS `a` WHERE `a`.`published` = 1 AND id IN111(10,6,7) AND `a`.`access` IN (1,1,5) ORDER BY `a`.`ordering` ASC LIMIT 6
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Правильность синтаксиса запроса
« Ответ #56 : 30.08.2017, 15:19:32 »
ну вы хотите заставить поверить меня в чудеса? :) вы жестко задаете
Цитировать
$query->where('id IN(10,6,7)');
и при этом у вас ошибка
Цитировать
WHERE `id` IN ()
вывод знаете какой отсюда? :) вы показываете код для одного запроса, а ошибку совершенно для другого :) собственно это понятно даже по наличию кавычек в которые обрамлен `id` в тексте ошибки. у вас в запросе их нет, а в ошибке они есть. а так не бывает :) короче, я вам опять не верю :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #57 : 30.08.2017, 15:20:16 »
Господа, по-моему, вы уже запутались :).
Смотрите, у вас сначала была проблема с запросом
Код
SELECT a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on FROM `#__spsimpleportfolio_items` AS `a` WHERE `a`.`published` = 1 AND a.tagids IN(,10,6) AND `a`.`access` IN (1,1,5) ORDER BY `a`.`ordering` ASC LIMIT 6
, а теперь ошибку вызывает уже запрос
Код
SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN () ORDER BY id ASC

только вот именно в том месте, где
Код
$query->where('id IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
;D Это был тот же старый запрос, просто ТС с перепуга поменял a.tagids на id ;D.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Правильность синтаксиса запроса
« Ответ #58 : 30.08.2017, 15:23:36 »
Господа, по-моему, вы уже запутались :)
ну вы ж нас путаете, мы и запутались. мне вообще щас все равно что там у вас раньше было. покажите мне на сейчас
1. php, который формирует запрос, по которому ошибка.
2. текст ошибки.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #59 : 30.08.2017, 15:29:36 »
ну вы ж нас путаете, мы и запутались. мне вообще щас все равно что там у вас раньше было. покажите мне на сейчас
1. php, который формирует запрос, по которому ошибка.
2. текст ошибки.

Я уже забыл свое Имя ;D

Такс
Сам запрос
Код
$query->select('a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on')
->from($db->quoteName('#__spsimpleportfolio_items', 'a'))
->where($db->quoteName('a.published'). ' = 1');
//has category
if ($params->get('spsimpleportfolio_tags')!= '')
$query->where('id IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
}
$query->where($db->quoteName('a.access')." IN (" . implode( ',', JFactory::getUser()->getAuthorisedViewLevels() ). ")")
->order($db->quoteName('a.ordering'). ' ASC')
->setLimit($params->get('limit', 6));

Выдает ошибку
#1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') ORDER BY id ASC' at line 3 SQL=SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN () ORDER BY id ASC

Я вот предполагаю, что пытаюсь вызвать то, где этого нету... Ну или я запутался уже совсем... Решил подпортить published из вышеуказанной выборки и вот что на выходе:
#1054 Unknown column 'a.publish456ed' in 'where clause' SQL=SELECT a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on FROM `#__spsimpleportfolio_items` AS `a` WHERE `a`.`publish456ed` = 1 AND id IN(10,6,7) AND `a`.`access` IN (1,1,5) ORDER BY `a`.`ordering` ASC LIMIT 6



Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться