Отображать конкретное изображение, когда файл отсутствует

Я новичок в кодировании и нуждаюсь в небольшой помощи. У меня есть код, который показывает изображение в соответствии с определенным значением в столбце таблицы MySQL, например:

//Show last 10 added by ID
$sql = "(SELECT * FROM food_tbl ORDER BY food_id DESC LIMIT 10) ORDER BY food_id ASC;";

$result = $conn->query($sql);
$pathImg = "/images/";
if ($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
$pathFile = $pathImg . $row['food_name'] . ".jpg";
echo '<img src="' . $pathFile . '">';
}
}

Это выводит, например, banana.jpg … Дело в том … Я хотел бы показать стандартное изображение, когда файлы на самом деле не существуют, например, если у меня нет файла с именем banana.jpg в В моем каталоге «/ images /» вместо него будет показан файл unknownfood.jpg (который, конечно же, будет внутри этого каталога).

Теперь вот что, я уже нашел кое-что здесь: — Отображение определенного изображения в зависимости от конкретного текста в таблице MySQL с использованием PHP

… и я закончил тем, что попробовал это:

while($row = $result->fetch_assoc()) {
$pathFile = $pathImg . $row['food_name'] . ".jpg";
if (file_exists($pathFile)) {
echo '<img src="' . $pathFile . '">';
} else {
$pathFile = $pathImg . "unknownfood.jpg";
echo '<img src="' . $pathFile . '">';
}
}

Теперь, что это делает, это полностью игнорирует файлы, которые на самом деле там. Например, если я попытаюсь показать banana.jpg, он вместо этого покажет unknownfood.jpg.

Я почти уверен, что это что-то действительно легкое, что я испорчу, или что-то, что я не использую так, как задумано. Спасибо за помощь!

-1

Решение

Когда вы в PHP, используя file_exists($pathFile) путь на сервере относительно корня документа (который может быть /public_html/youruser), в то время как HTML читает из базовой папки (вне домена, /).

Это означает, что ваш код должен выглядеть примерно так

if (file_exists($_SERVER['DOCUMENT_ROOT'].$pathFile))
1

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

file_exists проверит путь к файловой системе, например /home/www/images/banana.jpg,

Когда вы отображаете img тег, он будет тянуть изображение из корня документа, domain.com/images/banana.jpg,

Найдите правильный путь к файловой системе и передайте его file_exists, он вернет правильный ответ.

Прямо сейчас он всегда будет возвращать ложь, поэтому вы окажетесь в else часть if пункт.

0

По вопросам рекламы [email protected]