以下のコードに2つの問題があります。
問題1:
questionIdの場合、正しい質問番号が表示されていません。2つの質問があるとしましょう。次に、質問1の場合、questionIdは「1」である必要がありますが、代わりに「3」が表示されます。別の例として、7つの質問がある場合、質問1の場合、questionIdは「1」である必要がありますが、代わりに「8」が表示されます。
これはどのように修正できますか?
問題2:
エコーする質問が複数ある場合でも、$questionsqlは1つの質問のみをエコーします。何が間違っているのでしょうか。1つの質問だけでなく、すべての質問を表示できますか。
例:
2つの質問がある場合:
Question 1:
SessionId QuestionId QuestionContent OptionId
ABV 1 What is my name? O6
Question 2:
SessionId QuestionId QuestionContent OptionId
ABV 2 What is my age? O9
次に、echo$questionsqlに次のように表示されます。
INSERT INTO Question(SessionId、QuestionId、QuestionContent、OptionId)VALUES('ABV'、 '1'、'What is my name?'、'O6')、('ABV'、 '2'、'What is my age? '、' O9')
ただし、上記は表示されません。代わりに、間違った質問番号が表示され、最後に追加された質問が1つだけ表示されるため、これは正しくありません。
INSERT INTO Question(SessionId、QuestionId、QuestionContent、OptionId)VALUES('ABV'、 '3'、'What is my age?'、'O9')
アップデート
以下はコードです。2つの問題をどのように修正できますか。
foreach($_POST['questionText'] as $i => $question)
{
$insertquestion = array();
$options[] = $_POST['gridValues'];
switch ($options[$i]){
case "3":
$selected_option = "A-C";
break;
case "4":
$selected_option = "A-D";
break;
case "5":
$selected_option = "A-E";
break;
default:
$selected_option = "";
break;
}
$optionquery = "SELECT OptionId FROM Option_Table WHERE (OptionType = '". mysql_real_escape_string($selected_option)."')";
$optionrs = mysql_query($optionquery);
$optionrecord = mysql_fetch_array($optionrs);
$optionid = $optionrecord['OptionId'];
$insertquestion[] = "'". mysql_real_escape_string( $_SESSION['id'] ) . ($_SESSION['initial_count'] > 1 ? $_SESSION['sessionCount'] : '') ."' ,'". mysql_real_escape_string( $_POST['num_questions'] ) ."','". mysql_real_escape_string( $question ) ."','". mysql_real_escape_string( $optionid ) ."'";
$questionsql = "INSERT INTO Question (SessionId, QuestionId, QuestionContent, OptionId)
VALUES (" . implode('), (', $insertquestion) . ")";
$i++;
}
echo($questionsql);
以下はフォームコードです。それがどのように機能するかは、ユーザーがテキストエリアに質問を入力し('name ='questionText')、オプションを入力し(name ='gridValues')、次にそれらをテーブル行に2つ追加します( ='qandatbl')。これが質問1です。次に、2番目の質問、次に3番目の質問などについても同じことを行います。これを注意深く見てください。簡単に理解できます:)