使用mysqli_fetch_row将数据库TEXT用于IMAGE

时间:2014-11-03 10:57:55

标签: php mysql database mysqli fetch

我有这段代码:

$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;
为什么这些空图像会出现?

3 个答案:

答案 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);