我有这段代码:
$query = "SELECT vidRoles FROM videoinformation";
if ($result = mysqli_query($con, $query)) {
while ($row = mysqli_fetch_row($result)) {
$values = explode(',',$row[0]);
foreach($values as $v)
printf ("<img src=\"roles/%s.jpg\">", $v);
}
mysqli_free_result($result);
}
但不是显示:
<img src="roles/Name1.jpg>
<img src="roles/Name2.jpg>
<img src="roles/Name3.jpg>
我有:
<img src="roles/Name1.jpg>
<img src="roles/Name2.jpg>
<img src="roles/Name3.jpg>
<img src="roles/.jpg>
<img src="roles/.jpg>
<img src="roles/.jpg>
<img src="roles/.jpg>
但在vidRoles内部,我只有&#34; Name1,Name2,Name3。&#34;
为什么这些空图像会出现?
答案 0 :(得分:4)
试试这个 -
foreach($values as $v) {
if (!empty($v)) {
printf ("<img src=\"roles/%s.jpg\">", $v);
}
}
存在一些null
值,这就是打印它们的原因。
答案 1 :(得分:2)
请将您的查询更新为:
$query = "
SELECT vidRoles
FROM videoinformation
WHERE LENGTH(vidRoles) > 0
";
有些行vidRoles
为空或NULL
。
他们造成了这个问题。
因此,为了避免这个问题,我们可以通过PHP if if语句或
来实现只需添加一些SQL条件。
我认为,第二个更好,因为它的努力较少。
答案 2 :(得分:0)
使用
更改您的打印声明 printf ('<img src=\"roles/%s.jpg\">', $v);