pdoTools и более 60 TV параметров в запросе
При попытке выбрать 100 TV полей pdoTools ничего не выводит кроме mysql ошибке в логе:
«Too many tables; MySQL can only use 61 tables in a join»
Есть ли быстрый способ это обойти или все же придется писать свой процессинг?
P.S. Сто полей конечно много, но что поделать, если у товара столько параметров, управлять ими через migx не удобно, да и заливать их туда тоже (спарсил со старого сайта).
«Too many tables; MySQL can only use 61 tables in a join»
Есть ли быстрый способ это обойти или все же придется писать свой процессинг?
P.S. Сто полей конечно много, но что поделать, если у товара столько параметров, управлять ими через migx не удобно, да и заливать их туда тоже (спарсил со старого сайта).
Комментарии: 5
Вопрос решил, разбив на два запроса к pdoTools по 50 параметров и смержив их вместе. Спасибо.
А можно подробнее, как вы разбили и соединили их? А то такая же проблема с полями(
Когда речь о таком количестве TV, правильнее расширять модель товара новыми полями: bezumkin.ru/modx/minishop2/classes/910/
когда речь о динамически генерируемых полях, и количество которых первоначально не известно, то явно это не подходит
Смотря в каком контексте нужно такое объединение, моя цель была получить набор характеристик по каждому товару для дальнейшей обработки их, выглядит это так:
//.... Установка переменных для первого запроса и его вызов
$res1 = $pdoFetch->run();
//.... Установка переменных для второго запроса и его вызов
$res2 = $pdoFetch->run();
//Объединение двух запросов
$res=array_replace_recursive($res1,$res2);
Если цель просто вывести параметры ресурса, то можно написать либо отдельный сниппет для этого, либо писать так: [[#[[+id]].tv_field_name]], производительность во втором случае страдает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.