msk13s 29 апреля 2016 1 4
Здравствуйте
Можете, пожалуйста, подсказать, почему такой сниппет не отдает всех пользователей?

<?php
$output = '';
$sql = "SELECT * FROM modx_users";
foreach ($modx->query($sql) as $row) {
$properties['id'] = $row['id'];
$properties['username'] = $row['username'];
}
$output = $modx->getChunk($tpl,$properties);
return $output;


чанк:
id [[+id]] / user [[+username]]


При вызове отображается только один результат…
Таблица modx_users просто для примера
4 комментария
spector1
spector 29 апреля 2016г в 13:03 #
В цикле вы перезаписываете значения элементов массива $properties и в итоге после обхода результата sql-выборки вы и получаете в $properties только значение последней записи таблицы.
m
msk13s 29 апреля 2016г в 13:22 #
Виктор, не подскажете, как тогда сделать правильно?

С оф.сайта взял:
<?php
$output = '';
$sql = "SELECT * FROM modx_users";
foreach ($modx->query($sql) as $row) {
$output .= $row['id'] .'
';
}
return $output;

Но не получается разобраться с выводом нескольких значений и чанком
spector1
spector 29 апреля 2016г в 14:53 #
Лично я с чанками особо не работаю, а использую в основном пакеты от modx-клуба.А так,:

<?php
$output = '';
$sql = "SELECT * FROM modx_users";
foreach ($modx->query($sql) as $row) {
 $output.= "id ".$row['id'] ."/ user ".$row['username']."\n";
}
return $output;

m
msk13s 29 апреля 2016г в 16:00 #
Спасибо за наводку, теперь работает как надо
<?php
$output = '';
$sql = "SELECT * FROM modx_users";
foreach ($modx->query($sql) as $row) {
$output .= $modx->getChunk('mychunk', $row);
}
return $output;

Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.