2枚目以降の商品画像があれば表示、無ければ表示しない

前提

2枚目以降の商品画像について
商品により画像の枚数が1枚~4枚あります
全ての商品が4枚有れば表示は問題ないのですが、

1枚しか登録してない場合ブラウザでは3枚がリンク切れ?の様な表示になります。
alt="image" をalt="" 空欄にするとChromeではリンク切れ?表示は消えましたが
Safariでは消えませんでした。

phpMyAdmin の登録データ
商品番号(id)   商品名
1        aaa
2        bbb

画像は全てサーバー内のimagesフォルダーにアップロードしてあります。
1.jpg (商品番号1のメイン画像です)
1-2.jpg (商品番号1のサブ画像です)
1-3.jpg (商品番号1のサブ画像です)
1-4.jpg (商品番号1のサブ画像です)

実現したいこと

if文で メイン画像以外の画像がある場合は、サブ画像の枚数分を表示するようにしたいです。
サブ画像が0枚の場合は、メイン画像のみの表示し、サブ画像のリンク切れ表示が出ないようにしたいです
サブ画像が3枚ある場合は、メイン画像1枚とサブ画像3枚を表示したいです

発生している問題・エラーメッセージ

Parse error: syntax error, unexpected '$row' (T_VARIABLE), expecting ')' in・・・ if(file_exists(','$row['id']'-2.jpg')){ この行が構文エラーと出ます

該当のソースコード

php
画像が4枚ある商品は下記で表示出来ております。

$sql=$pdo->prepare('select * from product where id=?');
$sql->execute([$_REQUEST['id']]);
foreach ($sql as $row) {
echo '<p><img alt="image" src="images/', $row['id'], '.jpg"></p>';
echo '<p><img alt="image" src="images/', $row['id'], '-2.jpg"></p>';
echo '<p><img alt="image" src="images/', $row['id'], '-3.jpg"></p>';
echo '<p><img alt="image" src="images/', $row['id'], '-4.jpg"></p>';
}

試したこと

if文を自分で挿入しましたらエラーとなりました

foreach ($sql as $row) {
echo '<p><img alt="image" src="images/', $row['id'], '.jpg"></p>';
if(file_exists(','$row['id']'-2.jpg')){
echo '<p><img alt="image" src="images/', $row['id'], '-2.jpg"></p>';
echo '<p><img alt="image" src="images/', $row['id'], '-3.jpg"></p>';
echo '<p><img alt="image" src="images/', $row['id'], '-4.jpg"></p>';
}

どの様に記述すれば宜しいでしょうか?
php入門書を1冊購入し本に書いてある様に記述しました php初心者です。
よろしくお願いいたします

コメントを投稿

0 コメント