Лучше уж топиком на главную напишите. И подробней о ситуации.

Здравствуйте. Написал код, который выводит нужные поля ресурса. Проблема моя в том, что я не знаю как сделать так, чтобы он выводил эти значения поочередно. То есть у меня в некоторых полях хранится json массив со значениями, которые по порядку совпадают друг с другом. Мне сейчас выводит все сразу: Значение 1, значение 2 и т.д. А хотелось бы чтобы вывод был с использованием чанка, чтобы в первом блоке выводилось значение 1, во втором — значение 2 Сам код сниппета: //$ids = $modx->resource->get('id'); $ids = 13; $resources = $modx->getCollection('modResource',$ids); foreach ($resources as $res) { $output .= '<h2>'.$res->get('pagetitle').'</h2>'; $output .= '<p>'.implode(',', $res->get('color')).'</p>'; $output .= '<p><img src='.implode(',', $res->get('put_kartinka')).'></p>'; $output .= '<p>'.implode(',', $res->get('nacenka_kartinka')).'</p>'; } print_r($output);

Магазин Хостинг-технологии (vdsina.ru) ущемляет права потребителей, нарушая статью 29 «Закона о Защите прав потребителей» — отказ в возврате средств, навязывание не затребованных услуг. Администрация считает, что их правила главнее Российского Законодательства. Будьте осторожны — магазин vdsina.ru не уважает своих клиентов!

Так вы покопайте глубже и разузнайте каким образом мускул выбирает нужный индекс. С большой долей вероятности он какую-то выборку данных для этого делает чтобы понять какой индекс лучше подходит. На хабре когда-то статья была, в которой чел писал, что мускул не всегда выбирает наиболее правильный индекс. Это может означать только то, что механизм выбора довольно сложный и не однозначный.

Никогда бы не подумал, что MySQL тратит так много времени на выбор подходящего индекса из нескольких возможных. Это время сравнимо со временем выполнения запроса. А если в таблице индексов много (и многие из них возможно использовать в запросе), то выбор оптимального занимает времени на порядок больше, чем время выполнения запроса.

Вообще-то именно расширение системных таблиц не относится напрямую ни к мап-файлам, ни тем более к scheme.xml. И забудьте вы уже про эту scheme.xml. Она нигде кроме как для генерации мап-файлов не используется.

На счет правильности подробнее свои мысли можете выложить? Я вот думаю так: у вас вот в профилировании информация range tmplvarid,tv_cnt,idx_tv_value,idx_value_tv Это возможные используемые индексы. Вот как у меня в запросе: ? Тут два возможных индекса: contentid,value. А вот запрос, где я явно указал какой индекс использовать: ? А здесь только один возможный индекс, который я и указал. Не кажется ли вам логичным, что когда индекс явно указан, мускулу не приходится перебирать все остальные индексы, чтобы выяснить какой из них наиболее подходящий? И что это должно положительно сказываться на скорость выполнения запроса (и скорее всего на statistics)?

Николай, скажите пожалуйста. В статье на хабре Вы говорили только про создание мап файлов в компоненте, которые будут расширять системные таблицы. А можно ли это реализовать как-то создав файл scheme.xml?

Я перед каждым запуском запроса вношу реальное изменение в ту таблицу, которая в запросе используется (как правило, это таблица ресурсов). Для этого у меня рядом отдельная вкладка с формой редактирования тестового ресурса.

Так я же говорю, что индекс он сам выбирает и выбирает правильно. Но если я тот же самый индекс указываю явно, запрос выполняется в разы быстрее (в последнем запросе — в 17 раз быстрее).