我使用 explode 获取一个照片文件名数组并将它们放入一个字符串中,以便我可以将它们存储在 mysql 数据库中,它们存储在一个名为"imagesordered"的字段中,如下所示:329722360536.jpeg,278255684690.jpeg,813207971421.jpg所以它们用逗号分隔。
到目前为止,我有以下内容将它们从数据库中提取:
include("connect.php");
$sql = <<<SQL
SELECT *
FROM `albumorders`
SQL;
if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}
while($row = $result->fetch_assoc()){
$albumid = $row['albumid'];
$albumname = $row['albumname'];
$imagesordered = $row['imagesordered'];
}
问题是我只是回显出字符串,我需要它做的是在单独的行中回显出每个值减去逗号,但只运行一次 while 循环,因为每条记录都有如此多的照片与之关联,所以理想情况下,在每次运行 while 循环时,我会得到:
专辑编号 : 34n3jn43n专辑名称 : 鲍勃专辑专辑订单 :3433434.jpg3434343.jpg3434343.jpg2323243.jpg
然后进入下一张唱片...
但是我不知道该怎么做?
试试这个
while($row = $result->fetch_assoc()){
$albumid = $row['albumid'];
$albumname = $row['albumname'];
$imagesordered = $row['imagesordered'];
$img_arrary = explode(',',$imagesordered);
echo 'Album Id : '.$albumid."<br>";
echo 'Album Name :'.$albumname."<br>";
echo 'Album Orders :<br>';
foreach($img_arrary as $key=>$value)
{
echo $value."<br>";
}
}
这样做:
while($row = $result->fetch_assoc()){
$albumid = $row['albumid'];
$albumname = $row['albumname'];
$imagesordered = $row['imagesordered'];
$imageArr = explode(',',$imagesordered);
foreach($imageArr as $images){
echo $images;
}
}
Kasun Rajapaksha 在上面
检查并为每个标签添加<br>
标签,但忘记循环:
$imagesordered = str_replace(',', '<br>', $row['imagesordered']);