0

質問番号、返信、および回答を含む以下の表があります。テーブルが次のようになっているとします。

QuestionNo   Reply         Answer

1            Single        A D
2            Multiple      B E F
3            Multiple      C
4            Single        D H

私がやりたいのは、これらの値を $_POST して、データベースに挿入できるようにすることです。

関連する質問にそれぞれの回答を挿入したいので、for ループを作成しました。しかし、私の質問は、switch ステートメントをどのように記述して、各質問の正しい回答を投稿するかということです。

以下は for ループと答えの値を挿入する mysqli コードです。

    $i = 0;
    $c = count($_POST['gridValues']);  //count each table row

    for($i = 0;  $i < $c; $i++ ){

   //switch statement for each answer post goes here

    }

   $answersql = "INSERT INTO Answer (Answer) 
    VALUES (?)";

      if (!$insertanswer = $mysqli->prepare($answersql)) {
      // Handle errors with prepare operation here
    }  

    $insertanswer->bind_param("s", $_POST[''][$i]);

        $insertanswer->execute();

        if ($insertanswer->errno) {
          // Handle query error here
        }

        $insertanswer->close();

    }

各回答には独自の名前属性があり、30 の異なる回答があり、以下は投稿方法の例です。

$_POST['answerAvalue']  //Answer A
$_POST['answerBvalue']  //Answer B
$_POST['answerCvalue']  //Answer C
$_POST['answerDvalue']  //Answer D

....

$_POST['answerTruevalue']  //Answer True
$_POST['answerFalsevalue'] //Answer False
$_POST['answerYesvalue']   //Answer Yes
$_POST['answerNovalue']    //Answer No
4

1 に答える 1

1

クレイジーな質問ですが、私はあなたに1つの推奨事項があります、これを変更してください:

switch ($_POST['reply'][$i]){ 

case "single": 
$selected_reply = "Single"; 
break; 

case "multiple": 
$selected_reply = "Multiple"; 
break; 

default: 
$selected_reply = ""; 
break; 

}

これについて:

$selected_reply = "";
if (isset($_POST['reply'][$i])) {
    $selected_reply = ucfirst($_POST['reply'][$i]);
}
于 2012-10-05T16:52:45.347 に答える