私はコーディングの初心者で、少し助けが必要です。次のように、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 を出力します...問題は...ファイルが実際に存在しない場合に標準の画像を表示したいのですが、バナナ.jpg というファイルがない場合です。私の「/images/」ディレクトリでは、代わりにunknownfood.jpgファイルが表示されます(もちろん、実際にはそのディレクトリ内にあります)。
さて、ここにあります、私はすでにここでいくつかのものを見つけました: --- PHP を使用して MySQL テーブルの特定のテキストに応じて特定の画像を表示します
...そして私はこれを試してみました:
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 が表示されます。
私が台無しにしているのは本当に簡単なものか、意図した方法で使用していないものだと確信しています。助けてくれてありがとう!