Semyon
Ребят есть кто шарит в sql и pdoFetch?
Semyon
Такой вопрос. У меня есть строки которые присоединяются лефт джоином с другой таблицы к ресурсу с class_key assembly, мне нужно их количество присоединённых. Это я сделал путём группирования ресурсов по Id и такой строчки в селекте $select['slot'] = 'COUNT(slot.id) AS slotsCount'; (в сниппете) При сортировке через slotsCount, всё работает на ура, но вот я хочу в where запихнуть "... AND slotsCount > 0" Он мне выдаёт Неизвестный столбец 'slotsCount' в 'where clause' В добавок при добавлении в where 'where'=>['AND:slotsCount:>' => 0], (это fenom в шаблоне) в sql запрос добавляется таблица WHERE ( assembly.class_key = 'assembly' AND assembly.deleted = 0 AND `assembly`.`slotsCount` = '0' AND assembly.parent IN ... , хотя мне это не нужно т.к. переменная не принадлежит никакой таблице)
Roman
Парни не подскажите, почему может быть такая медленная загрузка на яндекс-диск с сервера. Файл 200мб. Грузит минут 20. Отправляю так: curl --progress-bar -T "${MYSQL_FILE}" "${output}" | cat
Semyon
Оказывается в pdoFetch есть having
Semyon
Правильно нужно было сделать им условие
Semyon
потому что count Отрабатывает по сути после группировки
Semyon
и условие where которое идёт до группировки не может содержать переменную count(slot.id)
Semyon
а вот having который идёт после группировки как раз подходит
Semyon
даже если честно не знал о нём)
Semyon
так низя вам нужен HAVEN
Да спасибо, уже сделал через haven)
Roman
Подскажите, как правильно сделать запрос. &where={ "Data.counts:>":0, "OR:Data.counts_mos:>":0 } Он выводит не правильно, так как перемешивается запрос с AND. (Data.counts>0 OR Data.counts_mos>0) AND id IN (1, 2, 3...) А сейчас Data.counts>0 OR Data.counts_mos>0 AND id IN (1, 2, 3...)
Степан
&where={ ["Data.counts:>":0, "OR:Data.counts_mos:>":0] }
Степан
вот так попробуйте
Степан
ну в смысле скобочки даются нам от массива выборки
Степан
я вот этого AND id IN (1, 2, 3...) не вижу в вашем запросе
Степан
&where={ ["Data.counts:>":0, "OR:Data.counts_mos:>":0] }
если делать так как вы написали то получится { ["Data.counts:>":0, "OR:Data.counts_mos:>":0], "id:IN":["1","2","3"] }
Roman
если делать так как вы написали то получится { ["Data.counts:>":0, "OR:Data.counts_mos:>":0], "id:IN":["1","2","3"] }
Так почему-то в запросе не нет. &where={ ["Data.counts:>":0, "OR:Data.counts_mos:>":0] } Пробовал так { { "Data.counts:>":0, "OR:Data.counts_mos:>":0} } выдает ошибку
Степан
я вас не понимаю
Roman
запросе не нет ???
WHERE ( msProduct.class_key = 'msProduct' AND msProduct.id IN (127891,127918) AND msProduct.published = 1 AND msProduct.deleted = 0 )
Roman
)))) не легче
Когда: &where={ "Data.counts:>":0, "OR:Data.counts_mos:>":0 } Выводит: WHERE ( msProduct.class_key = 'msProduct' AND Data.counts > '0' OR Data.counts_mos > '0' AND msProduct.id IN (74356,76010,...,166894) AND msProduct.published = 1 AND msProduct.deleted = 0 ) Когда: &where={ ["Data.counts:>":0, "OR:Data.counts_mos:>":0] } WHERE ( msProduct.class_key = 'msProduct' AND msProduct.id IN (74356,76010,...,166894) AND msProduct.published = 1 AND msProduct.deleted = 0 ) Пробовал так: { {"Data.counts:>":0, "OR:Data.counts_mos:>":0} } Вообще не работает
Степан
Data откуда должен взяться такой алиас?
Roman
Вот: [[!mFilter2? &class=msProduct &parents=[[*id]] &where={ ["Data.counts:>":0, "OR:Data.counts_mos:>":0] } ]]
Степан
я понял походу дела там для выборки пользуется pdoTools а у него логическая ошибка при добавлении left join
Степан
я им предлагал изменение но до сих пор оно не было использовано в релизах
Степан
т.е. суть проблемы в том что там не совсем верно отрабатывает where и left Join т.е. left join затирает параметры where
Степан
{ {"Data.counts:>":0, "OR:Data.counts_mos:>":0} } - вот так в принципе парсер ломается раньше затирания
Степан
мой метод рабочий, но он затирается
Roman
Как можно обойти?
Степан
Как можно обойти?
надо поправить ядро pdoTools
Степан
ща поищу
Roman
В pdoparser.class.php правильно понял?
Степан
https://github.com/modx-pro/pdoTools/pull/310
Степан
а не там с тv были траблы
Roman
Кстати можно ли там limit уменьшить, чтобы меньше обходило? или не стоит трогать
Степан
тогда нужно смотреть но логика таже
Roman
еще встречал такой метод, но он не сработал: &where={"1": {"content:=":"", "OR:longtitle:=": ""}}
Степан
ща поищу у себя mFilter2
Степан
snippet.mfilter2.php - этот сниппет или нужно какой-то другой?
Степан
т.е. в снипете в принципе идет обнуление where
Степан
так что чтобы вы не писали все побоку
Степан
используйте filter
Roman
Сейчас тогда в снипете гляну.
Степан
Степан
Степан
counts и counts_mos откуда вообще из какой таблицы?
Roman
Там если where поставить, то работать будет. есть даже такая строка. Checking resources by status and custom "where" parameter Я все же думаю, что парсер подтупливает.
Степан
можете проверить сделайте print_r
Степан
$mSearch2 = new mSearch2($modx, $scriptProperties);
Степан
хотя он уходить сюда
Олег
Привет $(document).on('af_complete', function(event, response) { var form = response.form; if (form.attr('id') == 'order-product') { console.log("Форму отправлено"); }else{ console.log("Форму не отправлено"); } response.message=''; }); в чем проблема? все время выводит "Форму отправлено"
Roman
хотя он уходить сюда
Если так вставляю, то все нормально работает: &where={ "Data.counts:>" : "0" }
Олег
а почему через attr() вы как туда пишете данные? туплю, а почему бы не срабатывать???
в документации нашел $(document).on('af_complete', function(event, response) { var form = response.form; // Если у формы определённый id if (form.attr('id') == 'my_form_3') { // Скрываем её! form.hide(); } // Иначе печатаем в консоль весь ответ else { console.log(response) } });
Олег
а как проверить на отправку форму с определенным id?
Степан
т.е. тут мы видим при срабатывании события af_complete мы присвоили переменной значение и скрыли объект с id "my_form_3 "
Степан
а как проверить на отправку форму с определенным id?
так вы смотрите на результат а вам нужно смотреть на процесс отчего у вас срабатывает событие "af_complete"
Олег
Roman
Там я указал, как сделан запрос.
Roman
Роман, вы лог запроса то дадите?
Мне просто этот OR выборку нужно объединить. А то вместо 300товаров, весь каталог выводит.
Степан
LEFT JOIN modx_dS4_ms2_products Data
Степан
этого я не видел
Степан
в вашем запросе
Степан
или он сам так от души запиливает?