0

POSTを介して送信すると、フィールドに基づいて2つの別々のテーブルに挿入する必要があるフォームがあります。各フィールドは、独自の行として追加する必要があります。

調査を想像してみてください。全部で4つのセクションがあります。セクション内の質問ごとに、ユーザーは1〜5の値を選択します。各セクションの下部にはオプションのメモテキスト領域もあります。

各質問には、データベースの「質問」テーブルに固有のIDがあります。これらの質問には、参照用に属するセクション(「セクション」テーブル)のIDが含まれています。

質問1:

質問のIDを持つ「answers」というテーブルに各回答を独自の行として挿入するにはどうすればよいですか?

「回答」の構造は次のようになります。

id(AI)| question_id | 値(ユーザーが送信、1-5)| response_id

質問2:

次に、各セクションの各メモを、各セクションのIDを持つ「notes」というテーブルに挿入するにはどうすればよいですか。

「メモ」の構造は次のようになります。

id(AI)| section_id | 値(ユーザーが送信)| response_id

Response_idは、ユーザーの応答を「応答」と呼ばれるテーブルに挿入した結果のIDです。このテーブルは、ユーザーが送信した各応答の結果を出力するために、すべてを結び付けます。

前もって感謝します。

4

2 に答える 2

1

あなたはこのようなことをすることができます。あなたは各質問の質問IDを持っていると言ったので、ユーザーが回答を選択したら、このように各質問に名前を付けます

name = "question[<?php echo $question_id ?>]"

<select name="cars">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>

単純な名前を付けるだけではありません。ユーザーが送信すると、question [$ ids]配列全体が各IDをループし、質問IDを使用して回答テーブルに挿入されます。配列操作を少し行う必要があります。

Notesの場合、名前フィールドでセクションIDを使用し、通常どおりデータベースに挿入します。

于 2013-02-08T18:10:31.667 に答える
1

配列を使用して、必要なIDを追跡することをお勧めします。HTMLブロックは、次のようになります。

<h3>Question '.$questionId.': Your question title here</h3>
<input type="hidden" name="question_id" value="'.$questionId.'" /> //Not necessary, but just to show you that a hidden field can be useful too 
<input type="text" name="answer['.$questionId.']" />

次に、$ _ POSTデータを通常の配列として、forループで、または大きなクエリで使用します(処理するフィールド/データの量に応じてパフォーマンスが向上します)。

この投稿の多次元配列の詳細:phpを使用したPOSTを介した多次元配列の送信

于 2013-02-08T18:30:43.047 に答える