私はプロジェクトのためにPHPとMySQLを学習しており、この部分で苦労しています。わかりやすくするために、関連するフィールド(実際にはもっと多くの実際のデータベース)をリストにして、3つのテーブルがあるとします。MySQLとPHP 1対多のデータを1行、複数の列に返す
Table1
---------------------
Index | Name | email
1 | Rob | [email protected]
2 | Kevin| [email protected]
3 | Amy | [email protected]
Table2
------------------------
id | Info | Submitted
1 | Blah | 0
2 | Yada | 1
Table 3
-------------------------
id | Goal |Submitted
1 | 1 | 1
1 | 2 | 1
1 | 3 | 1
1 | 4 | 0
1 | 5 | 0
3 | 1 | 0
3 | 3 | 1
3 | 4 | 1
ので、表1には、ユーザー情報を保持し、ちょっとメインテーブル
表2ユーザーがフィールドにいくつかのデータを入力して、準備ができたときに、承認のために提出されます。 (私は後で関数にSubmittedの値を使用します) ユーザーが情報を送信していない場合、レコードはありません。これは、表1と1対1です。表3ユーザは5つの目標について情報を入力します。任意の時点で、ユーザーに0〜5つのゴールが入力されることがあります。 Submittedは後の処理でも同じです。この表はTable1と多対1です。目標フィールドには1〜5の数字が表示されますが、この例では不要な目標テキストを保持する別のフィールドがあります。
所望の出力はHTMLテーブル
Name | email | info |Goal1|Goal2|Goal3|Goal4|Goal5|
Rob | [email protected] | Blah | 1 | 2 | 3 | 4 | 5 |
Kevin | [email protected] | Yada | | | | | |
Amy | [email protected] | | 1 | | 3 | 4 | |
ブランクがNULLと考えたり、彼らがDBに存在しないと他の何かされているかどうかわからないです。私は*のようなフィールドに何かを入れたいと思います。基本的には、Submittedはフィールドのハイパーリンクを作るためのコードに使われるので、テーブル表示ではなくクエリの一部である必要がありますが、役立つならば表示することができます。私は左にクエリを使用しています
Name | email | info |Goal1|Goal2|Goal3|Goal4|Goal5|
Rob | [email protected] | Blah | 1 | 2 | 3 | 4 | 5 |
Kevin | [email protected] | Yada | * | * | * | * | * |
Amy | [email protected] | * | 1 | * | 3 | 4 | * |
が加わり、GROUP_CONCAT、それは非実在データとうまく動作していない、と私はいくつかのクレイジーな連結を行わずに送信されたフィールドを含める方法を見つけ出すことはできません、その後で引っ張っすべて離れてHTMLフィールドに入れてください。
私はいくつかのコードを含めることができますが、多くの変数が使用されているので、従うのが難しいかもしれません。
私はTABLE1と表3を用いて得ている最高: ロブ1,2,3,4,5 ケビン エイミー1,3,4
できない入力されていないレコードを持ちますこれは、データ文字列をテーブルに変換することは不可能に近くなります。私はすべての位置に何かを表示することができます、まだ存在しない場合でも、私はHTMLテーブルにそれを作る方法を知っています。
これは意味があり、誰かが私を助けてくれることを望みます。
現在のところ、このソリューションは非常に多くあります。メインのクエリやクエリを投稿したり、擬似コードを使用して特定の質問がどこにあるかを説明したりできますか? – WEBjuju
あなたは何を試しましたか?メインのSQLクエリ –