DBからSELECTでデータを取り出して配列に格納したい
現在課題に取り組んでおりましてphpとDBを用いて自動販売機の様なものを作成中です。
流れとしてはformに入力された商品をDBに格納してそこからその商品の情報を表形式で表示させるというものです。
DBに情報を格納するとこまでは出来たのですが、配列に挿入されている値が最後の値だけしかありません。
結果を配列に挿入する方法はmysqli_fetch_assocを使っています。
mysqli_fetch_assocのマニュアルに
もし 2 つ以上のカラムが同じフィールド名であった場合は、最後に現れた カラムが優先され、以前のデータを上書きします。
となっているので私の理解が間違っていなければ上書きされてしまったために最後の値しか挿入されないのでしょうか。
それとも挿入の方法が間違っているのでしょうか。
どなたかよろしければ教えていただけないでしょうか。
どうぞよろしくお願いいたします。
発生している問題・エラーメッセージ
エラーメッセージ
### 該当のソースコード
コード
$sql = 'SELECT drink_info_table.img,drink_info_table.drink_name,drink_info_table.price,management_table.stock,drink_info_table.status FROM drink_info_table JOIN management_table ON drink_info_table.drink_id = management_table.drink_id'; $result = mysqli_query($link, $sql); while ($row = mysqli_fetch_assoc($result)) { $drink_list['img'] = htmlspecialchars($row['img'], ENT_QUOTES, 'UTF-8'); $drink_list['drink_name'] = htmlspecialchars($row['drink_name'], ENT_QUOTES, 'UTF-8'); $drink_list['price'] = htmlspecialchars($row['price'], ENT_QUOTES, 'UTF-8'); $drink_list['stock'] = htmlspecialchars($row['stock'], ENT_QUOTES, 'UTF-8'); $drink_list['status'] = htmlspecialchars($row['status'], ENT_QUOTES, 'UTF-8'); } ```ここに言語名を入力 ソースコード
試したこと
drink_info_table
drink_id img drink_name price create_date reset_date status
5 img/cola.jpg コーラ 100 2019-06-18 19:59:01 2019-06-18 19:59:01 0
6 img/can_coffee.png コーヒー 100 2019-06-18 20:12:57 2019-06-18 20:12:57 1
7 img/drink_energy.png エナジードリンク 200 2019-06-18 20:12:57 2019-06-18 20:12:57 1
8 img/drink_uroncha_bottle.png 烏龍茶 150 2019-06-18 20:12:57 2019-06-18 20:12:57 1
9 img/cola.jpg コーラ 120 2019-06-20 21:49:25 2019-06-20 21:49:25 1
13 img/can_coffee.png コーラ 100 2019-06-24 18:28:04 2019-06-24 18:28:04 0
14 img/burgers.jpg コーラ 120 2019-06-25 21:56:21 2019-06-25 21:56:21 0
management_table
drink_id stock create_date reset_date
5 [->] 20 2019-06-18 20:40:10 2019-06-18 20:40:10
6 [->] 129 2019-06-18 20:40:10 2019-06-18 20:40:10
7 [->] 221 2019-06-18 20:40:10 2019-06-18 20:40:10
8 [->] 211 2019-06-18 20:40:10 2019-06-18 20:40:10
9 [->] 20 2019-06-24 18:05:40 2019-06-24 18:05:40
13 [->] 40 2019-06-24 18:28:04 2019-06-24 18:28:04
14 [->] 40 2019-06-25 21:56:21 2019-06-25 21:56:21
DBは上記の様になっております。
var_dump($drink_list)を行うと
array(5) { ["img"]=> string(15) "img/burgers.jpg" ["drink_name"]=> string(9) "コーラ" ["price"]=> string(3) "120" ["stock"]=> string(2) "40" ["status"]=> string(1) "0" }
になります。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー