質問編集履歴

2 修正

jiro-

jiro- score 28

2020/03/03 22:45  投稿

➀テーブル構造をどうするか➁異なる3つのテーブルから異なるカラム名、レコード内容の物を取得しjson形式で表示したいです
### 前提・実現したいこと
➀racesテーブルの中にcheck_pointsテーブルとtagsテーブルを作成する。→このような入れ子構造races[check_points, tags]
➁それぞれテーブルの中の好きなレコードを取得して、json形式でブラウザ表示したい。
###ここで分からない事が
➂テーブル構造でcheck_pointsとtagsを入れ子にするような事はできるのでしょうか?
➃➂のテーブル構造ができていればjson形式で別々に取得し表示する事はできるのでしょうか?
カラム名とレコード内容が同じであればjoinを使用し取得する事もできるとは思うのですが、
そうじゃない場合に欲しいレコードだけを取得するような事はできるものなのでしょうか?
###環境
VScode
PHP7.3
MySQL phpMyAdminでテーブルは作成しています。
ご助言よろしくお願い致します。
###実現したいjsonコードの構造
```
"races":[
           {
               "race_id":1,
               "race_name":"{$defT_NAME}",
               "check_point_count": 4,
               "race_start_date":"2020-04-23 07:00:00 +0900",
               "race_end_date":"2020-04-23 10:00:00 +0900",
               "check_points":[
                   {
                   "check_point_num":1,
                   "check_point_name":"受付",
                   "barrier_time":"2020-04-23 09:00:00 +0900"
                   },
                   {
                   "check_point_num":2,
                   "check_point_name":"スタート",
                   "barrier_time":"2020-04-23 09:00:00 +0900"
                   },
                   {
                   "check_point_num":3,
                   "check_point_name":"中継地点)",
                   "barrier_time":"2020-04-23 09:00:00 +0900"
                   },
                   {
                   "check_point_num":4,
                   "check_point_name":"ゴール",
                   "barrier_time":"2020-04-23 09:00:00 +0900"
                   },
               ],
               "tags":[
                   {"id":"04F0B93A665D80","bib_no":"1","title":"hogehoge-taro"},
{"id":"04D1B93A665D80","bib_no":"2","title":"hogehoge-jiro"},
{"id":"0413B93A665D81","bib_no":"3","title":"hogehoge-rena"},
                   {"id":"04D1B93A665D80","bib_no":"2","title":"hogehoge-jiro"},
                   {"id":"0413B93A665D81","bib_no":"3","title":"hogehoge-rena"},
               ],
        ]
```
###表示したい例
```
"race_id":1,
"check_point_num":2,
"check_point_name":"スタート",
"race_name":"{$defT_NAME}",
"bib_no":"1","title":"hogehoge-taro"
"races":[
           {"race_id":1,
            "check_points":[
                   {"check_point_num":2,
                    "check_point_name":"スタート",
                   }
                   ],
            "tags":[
                   {"race_name":"{$defT_NAME}",
                    "bib_no":"1","title":"hogehoge-taro"
                   }
                   ],
        ]
```
例なのですが、このように3つのテーブルからそれぞれ数個ずつ取得する形です。
  • PHP

    36839 questions

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

  • MySQL

    11446 questions

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

  • XAMPP

    1112 questions

    XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

1 追記

jiro-

jiro- score 28

2020/03/03 22:40  投稿

➀テーブル構造をどうするか➁異なる3つのテーブルから異なるカラム名、レコード内容の物を取得しjson形式で表示したいです
### 前提・実現したいこと
➀racesテーブルの中にcheck_pointsテーブルとtagsテーブルを作成する。→このような入れ子構造races[check_points, tags]
➁それぞれテーブルの中の好きなレコードを取得して、json形式でブラウザ表示したい。
###ここで分からない事が
➂テーブル構造でcheck_pointsとtagsを入れ子にするような事はできるのでしょうか?
➃➂のテーブル構造ができていればjson形式で別々に取得し表示する事はできるのでしょうか?
カラム名とレコード内容が同じであればjoinを使用し取得する事もできるとは思うのですが、
そうじゃない場合に欲しいレコードだけを取得するような事はできるものなのでしょうか?
###環境
VScode
PHP7.3
MySQL phpMyAdminでテーブルは作成しています。
ご助言よろしくお願い致します。
###実現したいjsonコードの構造
```
"races":[
           {
               "race_id":1,
               "race_name":"{$defT_NAME}",
               "check_point_count": 4,
               "race_start_date":"2020-04-23 07:00:00 +0900",
               "race_end_date":"2020-04-23 10:00:00 +0900",
               "check_points":[
                   {
                   "check_point_num":1,
                   "check_point_name":"受付",
                   "barrier_time":"2020-04-23 09:00:00 +0900"
                   },
                   {
                   "check_point_num":2,
                   "check_point_name":"スタート",
                   "barrier_time":"2020-04-23 09:00:00 +0900"
                   },
                   {
                   "check_point_num":3,
                   "check_point_name":"中継地点)",
                   "barrier_time":"2020-04-23 09:00:00 +0900"
                   },
                   {
                   "check_point_num":4,
                   "check_point_name":"ゴール",
                   "barrier_time":"2020-04-23 09:00:00 +0900"
                   },
               ],
               "tags":[
                   {"id":"04F0B93A665D80","bib_no":"1","title":"hogehoge-taro"},
{"id":"04D1B93A665D80","bib_no":"2","title":"hogehoge-jiro"},
{"id":"0413B93A665D81","bib_no":"3","title":"hogehoge-rena"},
```
```
###表示したい例
```
"race_id":1,
"check_point_num":2,
"check_point_name":"スタート",
"race_name":"{$defT_NAME}",
"bib_no":"1","title":"hogehoge-taro"
```
例なのですが、このように3つのテーブルからそれぞれ数個ずつ取得する形です。
  • PHP

    36839 questions

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

  • MySQL

    11446 questions

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

  • XAMPP

    1112 questions

    XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る