explode в цикле php
Есть например в базе 10 строк со столбцами например img и есть цикл php.
Никак не могу понять как сделать. например в цикле вывожу img все 10 строк, будет что-то типа этого : 1.jpg2.jpg3.jpg4.jpg и тд.
как одной переменной это всё вывести за пределы цикла? чтобы было так же 1.jpg2.jpg3.jpg4.jpg
$sql = $conn->query("SELECT * FROM table");
while ($row = $sql ->fetch(PDO::FETCH_ASSOC)){
echo $row['img']; // например 4 строки с img будет выглядеть так:1.jpg2.jpg3.jpg4.jpg
}
// мы уже за пределами цикла и сюда нужно вывести $row['img']
Ответы (3 шт):
Идеологически - так:
$sql = $conn->query("SELECT GROUP_CONCAT(img) AS img FROM table");
$row = $sql ->fetch(PDO::FETCH_ASSOC);
echo $row['img'];
Вывод: 1.jpg,2.jpg,3.jpg,4.jpg
Если не нравится разделитель-запятая, измени запрос.
PS. В PHP не смыслю ни хрена - так что с синтаксисом могу и наврать. Но на суть это не влияет.
вариант 1 по мере перебора цикла добавляем значение в переменную $fullrow таким образом все названия изображений в одной переменной
$sql = $conn->query("SELECT * FROM table");
while ($row = $sql ->fetch(PDO::FETCH_ASSOC)){
$fullrow .= $row['img'];
}
// мы уже за пределами цикла и сюда мы можем вывести $fullrow
echo $fullrow;
вариант 2 по мере перебора цикла добавляем значение в специально созданный массив $fullrowarray который сохранит все img за пределами цикла;
$sql = $conn->query("SELECT * FROM table");
while ($row = $sql ->fetch(PDO::FETCH_ASSOC)){
$fullrowarray[] = $row['img'];
}
// мы уже за пределами цикла и мы можем использовать массив $fullrowarray
// например вывести его содержимое на экран
print_r( $fullrowarray );
А вот так не канает?
$sql = $conn->query("SELECT * FROM table");
$rowsList_ARR = $sql->fetchAll(PDO::FETCH_ASSOC);
print_r($rowsList_ARR);
Если нужно как-то по-красивому, каким-то списком, то можно так :
$sql = $conn->query("SELECT * FROM table");
$rowsList_ARR = $sql->fetchAll(PDO::FETCH_ASSOC);
$rowsCount_INT = $sql->rowCount();
$result_TEXT = '';
for ($i = 0; $i < $rowsCount_INT; $i++) {
if ($i > 0) { $result_TEXT .= ', '; }
$result_TEXT .= $rowsList_ARR[$i];
}
echo $result_TEXT;