Имеется код по выводу данных из базы данных который выводит список вех значений с помощью функции foreach as PHP: <?php $stn = $db ->query("SELECT * FROM products)->fetchAll(PDO::FETCH_ASSOC); foreach ($stn as $k => $v) { $znach = "<div><div>Категория товара по наименованию:</div>" . "<div>" . $v['name'] . "</div>" ?> //выводит значение только по одной позиции <div class="tabl"> echo $znach; </div> Как вывести все строки с данными в блок? Думал через массив но решил так
что делаешь с переменной $znach ? --- Добавлено --- Нарушен синтаксис php кода Нарушена верстка html тела что ожидаешь в 9 строке, после закрывающего php тега ?
https://www.php.net/manual/ru/language.operators.string.php PHP: <?php $znach = ''; $stn = $db ->query("SELECT * FROM products")->fetchAll(PDO::FETCH_ASSOC); foreach ($stn as $k => $v) { $znach .= "<div><div>Категория товара по наименованию:</div><div>" . $v['name'] . "</div>"; } ?> <div class="tabl"> <?=$znach;?> </div>
Крроче айм соре, с кодом лохнулся по быстрому зотел темку закинуть... в $znach присвоил результат запроса, выводит он его нормально но только одну строку а не все, то есть мне нужно запустить цикл. Короче я так понял без массива тут не как. --- Добавлено --- Для чего точка после ровно? и после <? ровно?
PHP: <?php $response = $db -> query( 'SELECT `name` FROM `products`' ); $result = $response -> fetchAll( PDO :: FETCH_FUNC, static function ( string $name ): string { return "<div>Категория товара по наименованию:</div><div>{$name}</div>"; } ); printf ( '<div class="tabl">%s</div>', implode ( PHP_EOL, $result ) );
PHP: <div class="tabl"> <?php foreach ($stn as $v): ?> <!-- с div'ами был какой-то косяк --><div>Категория товара по наименованию:</div><div><?= $v['name'] ?></div> <?php endforeach; ?> </div> foreach не обязательно использовать. Можно брать по одной записи из выборки и тут же ее выводить (в цикле for или while).