データベースから配列($res)をうまく取得できていたが、echoする段階で変数の定義ができていない?ことを示すエラーがでた。
配列が
$res=>0=>0=>honya,ra,ra
$res=>1=>0=>ho,nya,ra,
のようになってしまっていることが原因なのか、
以下のようなエラーがでている。
発生している問題・エラーメッセージ
Notice: Undefined index: name in /var/www/html/ec_site/products/rank.php on line 77 Notice: Undefined index: price in /var/www/html/ec_site/products/rank.php on line 78 Notice: Undefined index: introduction in /var/www/html/ec_site/products/rank.php on line 79
該当のソースコード
<table border="1"> <tr> <th>ランキング</th> <th>商品名</th> <th>値段</th> <th style="width:300px;">紹介文</th> <th>詳細</th> </tr> <?php $db = dbConnect(); foreach($total as $key => $value){ $keys=$key+3; // var_dump($keys); $sql = "SELECT * FROM products WHERE id = {$keys}"; $stmt = $db->prepare($sql); $stmt->execute(); $res[]= $stmt->fetchall(PDO::FETCH_ASSOC); } ?> <?php var_dump($res); foreach($res as $par){ ?> <tr> <td><?php for($i=0;$i<=5;$i++){echo $i;}?></td> <td><?php echo $par['name']; ?></td> <td><?php echo '¥'.$par['price']; ?></td> <td><?php echo $par['introduction']; ?></td> <td><form action="product_detail.php" method="POST"><button type="submit" name="id" value="<?php echo $par['id']; ?>">詳しく見る</button></form></td> </tr> <?php } ?> </table>
var_dump($res)
array(11) { [0]=> array(1) { [0]=> array(5) { ["id"]=> int(6) ["name"]=> string(9) "萩の月" ["price"]=> int(1800) ["introduction"]=> string(90) "宮城のお菓子。中にカスタードクリームっぽいのが沢山入っている" ["image"]=> string(15) "clover_moon.jpg" } } [1]=> array(1) { [0]=> array(5) { ["id"]=> int(3) ["name"]=> string(12) "白い恋人" ["price"]=> int(1000) ["introduction"]=> string(39) "北海道を代表する銘菓です。" ["image"]=> string(15) "white_lover.jpg" } } [2]=> array(1) { [0]=> array(5) { ["id"]=> int(4) ["name"]=> string(21) "じゃがポックル" ["price"]=> int(500) ["introduction"]=> string(33) "じゃがビーの親戚です。" ["image"]=> string(16) "poteto_pokke.jpg" } } [3]=> array(1) { [0]=> array(5) { ["id"]=> int(7) ["name"]=> string(33) "マルセイのバターサンド" ["price"]=> int(1300) ["introduction"]=> string(129) "北海道の有名なお菓子。ラムレーズンが入っていてとても美味しい。カロリーは気にしちゃだめ" ["image"]=> string(15) "butter_sand.jpg" } } [4]=> array(1) { [0]=> array(5) { ["id"]=> int(12) ["name"]=> string(15) "かすたどん" ["price"]=> int(1000) ["introduction"]=> string(41) "鹿児島のお菓子 お土産の定番" ["image"]=> string(13) "kasutadon.jpg" } } [5]=> array(1) { [0]=> array(5) { ["id"]=> int(5) ["name"]=> string(12) "ざびえる" ["price"]=> int(1500) ["introduction"]=> string(56) "大分の銘菓です。 かなり美味しいです。" ["image"]=> string(11) "zabieru.jpg" } } [6]=> array(1) { [0]=> array(5) { ["id"]=> int(13) ["name"]=> string(15) "紅芋タルト" ["price"]=> int(1500) ["introduction"]=> string(53) "沖縄の有名なお菓子 温めても美味しい" ["image"]=> string(11) "beniimo.png" } } [7]=> array(1) { [0]=> array(5) { ["id"]=> int(8) ["name"]=> string(15) "ままどおる" ["price"]=> int(800) ["introduction"]=> string(86) "バターを利かせた生地でミルクあんを包んだ菓子 福島のお土産" ["image"]=> string(14) "mama_dooru.jpg" } } [8]=> array(1) { [0]=> array(5) { ["id"]=> int(9) ["name"]=> string(15) "東京ばな奈" ["price"]=> int(1300) ["introduction"]=> string(72) "様々な種類のカスタードクリームが入ったミニケーキ" ["image"]=> string(12) "t_banana.jpg" } } [9]=> array(1) { [0]=> array(5) { ["id"]=> int(10) ["name"]=> string(12) "鳩サブレ" ["price"]=> int(900) ["introduction"]=> string(77) "神奈川、鎌倉を代表するサブレです。 牛乳との相性抜群" ["image"]=> string(8) "hato.jpg" } } [10]=> array(1) { [0]=> array(5) { ["id"]=> int(11) ["name"]=> string(27) "ありあけのハーバー" ["price"]=> int(1500) ["introduction"]=> string(62) "横浜のお菓子 あまり有名でないかもしれない" ["image"]=> string(10) "harver.jpg" } } }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/11 11:42
2020/03/11 11:49 編集
2020/03/11 16:12