Вывод данных из БД

Накидал сниппет для вывода нужных данных из БД. Верстку в РНР не хочется делать — долго. Добавил блок для вывода прямо в сниппете. Все работает, но появляется информация о возврате какой-то функции.
Код сниппета(укороченный)
<?php
$sth = $modx->query("SELECT * FROM reg_users");
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $data) {
    $regNum = $data['regNum'];
}
?>
<div><?php echo $regNum;?></div>
выводит
3173
return; 1
значение переменной $regNum верное. А вот откуда берется return; 1 понять не могу.
Если выводить таким образом
<?php
$sth = $modx->query("SELECT * FROM reg_users");
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach ($result as $data) {
    $regNum = $data['regNum'];
}
echo '<div>' .$regNum. '</div>';
?>
то все нормально.
Просто данных гораздо больше и при их выводе используется довольно сложная верстка и верстать вывод html тегов на php очень не хочется.
Дмитрий
30 августа 2021, 19:15
modx.pro
438
0

Комментарии: 5

Andrey
30 августа 2021, 20:16
0
Есть прямая рекомендация так не делать, потому что работать не будет. Да и закрывать php в сниппете не надо. Полагаю, что это вывод сообщения обработчика, типа return — отдано; 1 — успешно.
    Павел Романов
    30 августа 2021, 20:18
    0
    Используйте getChunk.
    Например:
    <?php
    $sth = $modx->query("SELECT * FROM reg_users");
    $result = $sth->fetchAll(PDO::FETCH_ASSOC);
    foreach ($result as $data) {
        $regNums .= $modx->getChunk($tpl, array('regNum' => $data['regNum']);
    }
    return $modx->getChunk($tplWrapper, array('output' => $regNums));

    В вызове указывайте параметры:
    [[SnippetName?  
        &tplWrapper=`chunk1` 
        &tpl=`chunk2`
    ]]

    Ну а там уже оформляйте как угодно.
    В chunk2, к примеру:
    <ul>[[+output]]</ul>

    В chunk2:
    <li>[[+regNum]]</li>
      Andrey
      30 августа 2021, 20:39
      0
      Ну или можно попробовать поиграть в прятки с обработчиком и открыть в конце сниппета пустой php, например:
      <?php
      $sth = $modx->query("SELECT * FROM reg_users");
      $result = $sth->fetchAll(PDO::FETCH_ASSOC);
      foreach ($result as $data) {
          $regNum = $data['regNum'];
      }
      ?>
      <div><?php echo $regNum;?></div>
      <?php
      если хочется костылей :D
        Дмитрий
        30 августа 2021, 22:07
        0
        Не, костылей не надо. И так хромаю на обе ноги))) Рецепт от Павла Романова помог. Спасибо всем!
        vectorserver
        07 сентября 2021, 21:53
        0
        <?php
        $sth = $modx->query("SELECT * FROM reg_users");
        $result = $sth->fetchAll(PDO::FETCH_ASSOC);
        foreach ($result as $data) {
            $regNum = $data['regNum'];
        }
        ?>
        <div><?php echo $regNum;?></div>
        <?php return ''; ?>
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          5