我目前正在使用PDO查询我的SQL表来回显一些数据。
一切都很顺利,直到我注意到我正在解析的MySQL表包含一个图像列,其中包含7个以逗号分隔的图像。
以下是该列包含的字符串示例:
http://images.autoexposure.co.uk/AETA83919/AETV85190781_1b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_2b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_3b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_4b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_5b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_6b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_7b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_8b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_9b.jpg
我目前正在使用以下代码将结果回显到前端:
<?php while($row = $results->fetch(PDO::FETCH_ASSOC))
{
echo '<div>'.$row["FirstColumn"].'</div>';
} ?>
那么如何将字符串中的每个图像链接插入单独的img元素?
我认为逗号将成为关键,但我对如何实现这一点感到困惑。
任何帮助都会很棒。
答案 0 :(得分:0)
您可以使用explode()
将字符串拆分为单独的图像路径,然后使用foreach()
遍历列表:
$images = 'http://images.autoexposure.co.uk/AETA83919/AETV85190781_1b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_2b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_3b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_4b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_5b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_6b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_7b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_8b.jpg,http://images.autoexposure.co.uk/AETA83919/AETV85190781_9b.jpg';
foreach(explode(',', $images) as $image) {
echo '<img src="'.$image.'">';
}
我还会考虑使用一对多关系来规范化数据库表。
答案 1 :(得分:0)
while($row = $results->fetch(PDO::FETCH_ASSOC)) {
$images = explode(',', $row['FirstColumn']); // Split the string
echo '<div>';
foreach ($images as $image) {
echo '<img src="'.$image.'"/>'.PHP_EOL;
}
echo '</div>';
}
答案 2 :(得分:0)
另一种方式:
while($row = $results->fetch(PDO::FETCH_ASSOC))
echo '<div>' .
implode('</div><div>', explode(',', $row["FirstColumn"])) .
'</div>';
}