0

MySQL の質問テーブルから質問を取り込み、フォームに入力しています。これは正常に機能し、値に QuestionID が入力されるようにチェックボックスも入力しています。配列は適切に入力されていますが、チェックされたチェックボックスの値 (質問 ID) を取得し、その ID をテーブルに挿入して、ID で使用するために選択された質問を作成したいと考えています。これが私がこれまでに持っているものです:

//Declare the QuestionID as a array
$QuestionID = array();


while($row = mysqli_fetch_array($run,MYSQLI_ASSOC)){
echo '<div id="QuestionSelection"><input id="chkQuestion" type="checkbox" value=" '.$row['QuestionID'].'" name=chkQuestion align="left"/><p>' . $row['Question'] .'</p></div><br/><br/>';

//Assign the QuestionID from the table to the var
$QuestionID[] = $row['QuestionID'];

}


if($_POST['submitted']) { 


if (isset($_POST['chkQuestion']))
{
//create the query for the score
$sql2 = "INSERT INTO tbl_QuestionSelected (`QuestionID`) VALUES ($QuestionID)"; 

//Run the query 
$run2 = @mysqli_query ($conn,$sql2);

//Confirm message data was entered with a correct response and a graphic
echo '<h1>Submitted!!</h1>';

}


}//End of IF 'submitted
4

4 に答える 4

0

1つのステートメントに複数のレコードを挿入したいのは私が理解していることです。

$sql2 = "INSERT INTO `tbl_QuestionSelected` (`QuestionID`) VALUES(". implode('),(', $QuestionID) . ")";

$QuestionIDこれにより、内部の各インデックスが結合されます),(

あなたがエコーするとし$sql2たら、あなたは得るでしょう

INSERT INTO `tbl_QuestionSelected` (`QuestionID`) VALUES(1),(2),(3)
于 2012-07-12T13:46:25.367 に答える
0

IDをループしてエスケープしてみてください!!

    $ids_list = '';
    foreach($_POST["chkQuestion"] as $id)
    {
        $ids_list .= (strlen($ids_list) > 0 ? ',' : '').mysql_real_escape_string($id);
    }

    $sql2 = "INSERT INTO tbl_QuestionSelected (`QuestionID`) VALUES (".$ids_list.")";
于 2012-07-12T13:49:17.627 に答える
0

ループを使用して、チェックされる質問を取得できます。

for($i=0;$i<count($_POST["chkQuestion"]);$i++) {
  "INSERT INTO tbl_QuestionSelected (QuestionID) VALUES('".$_POST["chkQuestion"][$i]."');
}

このように、MySQLステートメントはテーブルに挿入する実際の値を持っています。

于 2012-07-12T13:51:51.977 に答える
0

これにより、値の配列に基づいて値が割り当てられ、MySQL に挿入されます。

//Declare the QuestionID as a array
$QuestionID = array();


while($row = mysqli_fetch_array($run,MYSQLI_ASSOC)){
echo '<div id="QuestionSelection"><input id="chkQuestion" type="checkbox" value=" '.$row['QuestionID'].'" name="QuestionID[' . $row['QuestionID'] . ']">' .$row['Question']. '</p></div><br/><br/>';

//Assign the QuestionID from the table to the var
$QuestionID[] = $row['QuestionID'];

}

if($_POST['submitted']) { 


$ids_list = '';

foreach($_POST["QuestionID"] as $key=>$value) {
{
$ids_list .= (strlen($ids_list) > 0 ? ',' : '').mysql_real_escape_string($value);
}

$sql2 = "INSERT INTO tbl_QuestionSelected (`QuestionID`) VALUES (".$ids_list.")";

//Run the query 
$run2 = @mysqli_query ($conn,$sql2);


}//End of IF 'submitted
}
于 2012-07-12T18:08:43.477 に答える