在一次运行 while 循环中转换来自 mysql 数据库的字符串


Convert string from mysql database in one run of while loop

我使用 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']);