Использование базы данных TEXT для ИЗОБРАЖЕНИЯ с использованием mysqli_fetch_row

У меня есть этот код:

$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 у меня есть только «Имя1, Имя2, Имя3».
Почему появляются эти пустые изображения ???

1

Решение

попробуй это —

foreach($values as $v) {
if (!empty($v)) {
printf ("<img src=\"roles/%s.jpg\">", $v);
}
}

Есть некоторые null ценности присутствуют, поэтому печатает их.

4

Другие решения

Пожалуйста, обновите ваш запрос:

$query = "SELECT  vidRoles
FROM    videoinformation
WHERE   LENGTH(vidRoles) > 0
";

Есть несколько строк, где vidRoles либо пустым, либо NULL,

Они вызывают проблему.

Таким образом, чтобы избежать проблемы, мы можем сделать это с помощью PHP с помощью операторов if else, или

Просто добавьте некоторые условия SQL.

Я думаю, что второе лучше, так как в нем меньше усилий.

2

измените свое заявление на печать с

    printf ('<img src=\"roles/%s.jpg\">', $v);
0
По вопросам рекламы [email protected]