前提
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 コメント