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

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

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

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

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

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

Q&A

解決済

2回答

667閲覧

データーベースを参照しPHPの変数の配列に入れる方法について

karasupanda

総合スコア8

MySQL

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

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

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

0グッド

0クリップ

投稿2018/06/04 07:09

編集2018/06/04 13:02

データベース(DB)のテーブル情報を、PHPの配列に格納する方法を教えてください。

こんにちは、早速ですが質問に移らせていただきます。

DB内のあるテーブルのデータを、PHPの配列に格納したいのです。
DBはMySQLを使っています。

データベース内のテーブルの内容(例)は以下のとおり。

テーブル名:sample

| 番 | 時 |
| 号 | 間 |
----------
| 1 | 朝 |
| 2 | 昼 |
| 3 | 夜 |
----------

このテーブルの「時間」列にある内容をひとつずつ格納したいのです。

今のところ

$data = array( '1'=> '朝', '2' => '昼', '3' => '夜' );

と、直接配列に格納していますが、
この場合は「DBから」配列に格納しているわけではなく、PHPに手入力で格納しているわけですが、
このままではこのテーブルに新しいデータを加えた場合、PHPの内容も変更しなければなりません。
どうにかDBから直接配列に格納したいのです。

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

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

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

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

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

m.ts10806

2018/06/04 07:36

「変数$question1~$question10に 代入させ、PHPの4択問題として機能させなければなりません」 というところをもっと具体的に説明願えますか?文章で難しければ実装イメージ(図示)でも構いません。
karasupanda

2018/06/04 07:50

$question1~10それぞれDBから取得したいということです。
m.ts10806

2018/06/04 07:52

ん。$row['問題文']という形で既にデータを取得されていますが、そこを配列で受け取るようにすればOKですか?
m.ts10806

2018/06/04 07:57

そこを配列で→ $question1~$question10という名称で
karasupanda

2018/06/04 08:17

背景としては、PHPに直接選択肢を書くのが面倒で管理しずらいため(問題数が非常に多い)、選択肢と問題文をPHPやHTMLに直接書かずにDBから取得したいのです。上記の通り問題文をDBから呼び出す方法はわかっております。希望としては、DB上の選択肢「きゅうり みかん いちご りんご」を$question1に配列で代入させたいと考えております。
y_waiwai

2018/06/04 12:29

カンニングの証拠隠滅のつもり?w
guest

回答2

0

ベストアンサー

お求めのものは可変変数だと思います。

php

1$var = 'question1'; 2$$var = 'A'; 3 4echo $question1; // -> A と表示される

が、素直に配列使ったほうが簡単ですね。
最初に下記のような構造の配列を作っておいて、後からループで表示しましょう。

php

1array( 2 array( 3 'question' => '問題文1', 4 'options' => array('選択肢1', '選択肢2', '選択肢3', '選択肢4'), 5 'answer' => 2 // 正解の選択肢の添字 6 ), 7 array( 8 'question' => '問題文2', 9 'options' => array('選択肢1', '選択肢2', '選択肢3', '選択肢4'), 10 'answer' => 1 // 正解の選択肢の添字 11 ) 12 . 13 . 14 . 15);

php

1 2$questions = array(); 3 4foreach ($dbh->query($sql) as $row) { 5 $questions[] = array( 6 'question' => $row['問題文'], 7 'options' => array($row['選択肢1'], $row['選択肢2'], $row['選択肢3'], $row['選択肢4']), 8 'answer' => $row['解答'] 9 ); 10}

php

1 2<table class="type01"> 3<?php foreach($questions as $index => $question): ?> 4<tr> 5<th scope="row"><?php echo ($index + 1); ?>.</th> 6<td> 7<?php echo $question['問題文']; ?> 8</td></tr> 9<tr> 10<th scope="row" class="even"></th> 11<td class="even"> 12. 13. 14. 15</td></tr> 16<?php endforeach; ?> 17</table>

投稿2018/06/04 07:51

yhg

総合スコア2161

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

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

0

可変変数使えば可能かと。

php

1$number = 1; 2foreach ($dbh->query($sql) as $row) { 3 ${"question{$number}"} = $row; 4 $number++; 5} 6 7var_dump($question1);

投稿2018/06/04 07:57

m.ts10806

総合スコア80850

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問