Новости Joomla

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

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #60 : 30.08.2017, 15:34:13 »
PRammer, зачем вы поменяли
Код
$query->where('a.tagids IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
на
Код
$query->where('id IN('.implode(',', array_filter($params->get('spsimpleportfolio_tags'))).')');
? Таким образом вы ввели dmitry_stas в заблуждение.
Выложите сюда весь ваш модуль в самом свежем состоянии. Так, наверное, не очень правильно, но зато быстрее будет.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Правильность синтаксиса запроса
« Ответ #61 : 30.08.2017, 15:35:52 »
не надо ничего портить. ответ прежний. вы показываете запрос один, а ошибку совсем другую. не по этому запросу. вы разве не видите, что у вас запрос формируется как
Цитировать
select('a.*, a.id AS spsimpleportfolio_item_id , a.tagids AS spsimpleportfolio_tag_id, a.created AS created_on')
а в ошибке при этом
Цитировать
SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN () ORDER BY id ASC

да и выбираете вы из #__spsimpleportfolio_items, а ошибку показываете по #__spsimpleportfolio_tags

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

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #62 : 30.08.2017, 15:40:39 »
Файл который в архиве распакуй в JPATH_ROOT/libraries/joomla/form/fields

Код ниже добавь в XML файл модуля
Код: xml
<field name="spsimpleportfolio_tags" type="spsimpleportfoliotags" label="MOD_SPSIMPLEPORTFOLIO_CATEGORY" description="MOD_SPSIMPLEPORTFOLIO_CATEGORY"><option value="">MOD_SPSIMPLEPORTFOLIO_CATEGORY_ALL</option></field>

Файл который в архиве распакуй в JPATH_ROOT/libraries/joomla/form/fields

Вот в этом файле формируется запрос к таблицу #_spsimpleportfolio_tags
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #63 : 30.08.2017, 15:43:59 »
Вот в этом файле формируется запрос к таблицу #_spsimpleportfolio_tags
Нет, не тот.
Выложите сюда весь ваш модуль в самом свежем состоянии. Так, наверное, не очень правильно, но зато быстрее будет.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #64 : 30.08.2017, 15:45:38 »
Выкладывать по факту нечего, т.к. основные модификации я расписал выше
Затрагивались только файлы:
1. mod_spsimpleportfolio.xml
менял
Код
<field name="category_id" type="category" extension="com_spsimpleportfolio" default="" label="MOD_SPSIMPLEPORTFOLIO_CATEGORY" description="MOD_SPSIMPLEPORTFOLIO_CATEGORY">
<option value="">MOD_SPSIMPLEPORTFOLIO_CATEGORY_ALL</option>
</field>
на
Код
<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>
2. helper.php
Код
$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('category_id')!= '') {
$query->where($db->qn('a.catid')." = ".$db->quote( $params->get('category_id') ));
}
$query->where($db->quoteName('a.access')." IN (" . implode( ',', JFactory::getUser()->getAuthorisedViewLevels() ). ")")
->order($db->quoteName('a.ordering'). ' ASC')
->setLimit($params->get('limit', 6));
на
Код
$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(',', 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));
3. файл spsimpleportfoliotags.zip по адресу libraries/joomla/form/fields положил, вот и все...
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #65 : 30.08.2017, 15:46:03 »
Нет, не тот.
Ок. Сейчас буду комплектовать...
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #66 : 30.08.2017, 15:48:18 »
<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>
Вот
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #67 : 30.08.2017, 15:49:47 »
Что
Вот
? Где все файлы модуля? Они у вас что, золотые?
ОК, увидел.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #68 : 30.08.2017, 15:51:20 »
Что? Где все файлы модуля? Они у вас что, золотые?
Выше прикрепил. Разве нету?
Все файлы модуля или чего-то не хватает?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #69 : 30.08.2017, 15:54:04 »
Еще файлы в папке com_spsimpleportfolio/models. Можно только модель SpsimpleportfolioModelItems, если найдете.
Еще и com_spsimpleportfolio/helpers/helper.php, скорее всего.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #70 : 30.08.2017, 16:01:15 »
Еще файлы в папке com_spsimpleportfolio/models. Можно только модель SpsimpleportfolioModelItems, если найдете.
Еще и com_spsimpleportfolio/helpers/helper.php, скорее всего.
Вот модель SpsimpleportfolioModelItems
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #71 : 30.08.2017, 16:02:26 »
Еще файлы в папке com_spsimpleportfolio/models. Можно только модель SpsimpleportfolioModelItems, если найдете.
Еще и com_spsimpleportfolio/helpers/helper.php, скорее всего.
Вот helper.php
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #72 : 30.08.2017, 16:11:24 »
Попробуйте с этим helper.php модуля.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #73 : 30.08.2017, 16:14:06 »
Попробуйте с этим helper.php модуля.
Fatal error: Cannot declare class ModSpsimpleportfolioHelper, because the name is already in use in /var/www/h4262/data/www/site.com/components/com_spsimpleportfolio/helpers/helper.php on line 12
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #74 : 30.08.2017, 16:16:44 »
Куда вы положили его?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #75 : 30.08.2017, 16:21:55 »
Куда вы положили его?
Перепутал, положил в папку modules/mod_spsimpleportfolio и заметил, что я забыл заменить
Код
if ($params->get('category_id')!= '') {
на
Код
if ($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: Правильность синтаксиса запроса
« Ответ #76 : 30.08.2017, 16:31:48 »
В каком виде tagids хранится в БД?
ОК, нашел.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #77 : 30.08.2017, 16:34:35 »
В каком виде tagids хранится в БД?
В старте топика прилагал скрин, это в таблице #_spsimpleportfolio_items
В самой таблице #_spsimpleportfolio_tags в обычном виде, без [""]
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #78 : 30.08.2017, 16:38:23 »
В старте топика прилагал скрин, это в таблице #_spsimpleportfolio_items
В самой таблице #_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

Так это я задокументировал выборку в helper.php или нужно было с вашим заменить?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #79 : 30.08.2017, 16:41:03 »
С моим.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #80 : 30.08.2017, 16:47:05 »
С моим.
Нет элементов на выводе. Ошибок тоже нет...
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #81 : 30.08.2017, 16:52:25 »
Нет элементов на выводе. Ошибок тоже нет...
Значит, ни одно значение tagids не подходит заданным spsimpleportfolio_tags.
Все, дальше разберитесь сами - обычно я не даю готового кода, сегодня сдуру отписался в вашей теме и она мне порядком надоела.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Re: Правильность синтаксиса запроса
« Ответ #82 : 30.08.2017, 17:02:24 »
Попробуйте следующее.

1. Удалите пока это
Цитировать
файл spsimpleportfoliotags.zip по адресу libraries/joomla/form/fields
.
2. Верните свой исходный XML.
3. Оставьте этот свой код без изменений.
Код: php
$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));

Он отработал, когда вы подпортили один столбец - выше. #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

4. выведите результат этого запроса.
« Последнее редактирование: 30.08.2017, 17:09:04 от capricorn »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #83 : 30.08.2017, 17:18:25 »
Вот, попробуйте новый helper модуля. Больше нет времени на ваш модуль.
Нет, не пойдет, ошибка будет. Ладно, будет время, еще загляну.
« Последнее редактирование: 30.08.2017, 17:23:30 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #84 : 30.08.2017, 17:27:58 »
Попробуйте следующее.

1. Удалите пока это .
2. Верните свой исходный XML.
3. Оставьте этот свой код без изменений.
Код: php
$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));

Он отработал, когда вы подпортили один столбец - выше. #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

4. выведите результат этого запроса.


)) как-то не сработает.... отработает без учета меток...
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Правильность синтаксиса запроса
« Ответ #85 : 30.08.2017, 17:31:44 »
Вот, попробуйте.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #86 : 30.08.2017, 17:38:32 »
Вот, попробуйте.
#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: Правильность синтаксиса запроса
« Ответ #87 : 30.08.2017, 17:41:12 »
А  mod_spsimpleportfolio.php - мой?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

PRammer

  • Захожу иногда
  • 119
  • 0 / 0
Re: Правильность синтаксиса запроса
« Ответ #88 : 30.08.2017, 17:42:01 »
mod_spsimpleportfolio.php
да, с
Код
$tagged_items = array();

foreach ($items as $item) {
$item->tagids = json_decode($item->tagids);

if (!empty($item->tagids)) {
$tagged_items[] = $item;
}
}

if (!empty($tagged_items)) {
$tagList = $model->getTagList($tagged_items);
}

$moduleclass_sfx = htmlspecialchars($params->get('moduleclass_sfx'));
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Re: Правильность синтаксиса запроса
« Ответ #89 : 30.08.2017, 17:47:21 »
Цитировать
)) как-то не сработает.... отработает без учета меток...

замените тогда id на a.tagids, или что вам нужно из таблицы выборки. выше спрашивали вас, зачем поменяли.

вам надо избавиться от ошибки 1064, i.e. вас уже раз 10 спросили, где запрос
Код: sql
SELECT `id`,`title`,`alias` FROM `#__spsimpleportfolio_tags` WHERE `id` IN ()
,ее генерирующий. вы указали в каком файле. удалите его, если это он. потом займетесь формами Joomla.
Цитировать

А  mod_spsimpleportfolio.php - мой?
уже нет, он теперь общий. ;)
« Последнее редактирование: 30.08.2017, 17:52:01 от capricorn »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться