質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1534閲覧

mysqli_fetch_assocについて

cabbage7

総合スコア17

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/06/26 13:17

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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2019/06/26 13:33

課題であればいくらでも質問に答えてもらえる有料サポート契約を先生と結んでるようなもんだから、こんな無料質問サイトで聞かんでも…。 厳密言いうとこれもガイドライン違反なんで。こういう質問クソ多いけど。 https://teratail.com/help/avoid-asking 「何かを作りたいのでコードを書いてほしい、学校の課題を解いてほしい等の質問は、具体的にプログラミングで困っている質問ではないと考え、推奨していません。」
guest

回答2

0

ご指摘がありましたので、解決済みとさせていただきます。

投稿2019/06/26 13:41

cabbage7

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

ご指摘がありましたので解決済みにさせていただきます。

投稿2019/06/26 13:39

cabbage7

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問