私のINSERT VALUESに問題があります。問題は、質問番号を挿入しようとするときです。 2つの質問を挿入しようとします。最初の質問では質問番号(QuestionId)は1でなければならず、2番目の質問では2でなければなりません。エコーに正しい番号が表示されない
しかし問題は、INSERT VALUESの両方の質問に質問番号3が表示されることです。だから、すべての質問のために何をしているのかは、この例ではすべての質問に対して「3」である次の質問番号を挿入することです。
INSERT INTO Question (QuestionId, QuestionContent) VALUES ('3','what is my name'), ('3','what is my age')
上記が正しくありません:以下
はそれが私は2つの質問のための$ questionsqlをエコー現時点で表示しているものの一例です。以下は、それが反響をすべきかです:
INSERT INTO Question (QuestionId, QuestionContent) VALUES ('1','what is my name'), ('2','what is my age')
だから私は、私はそれぞれの質問に対して正しい質問番号を表示することができますどのように、それは質問1、2から正しい順序で正しい質問番号を追加する必要がありますされて知りたいです、3など
以下は、テーブル行に質問を追加するjavascriptコードとフォームコードです。ユーザーは、テーブル行に質問を追加します。ユーザは、最初の質問を追加するときには、質問番号1を追加し、以下の質問、彼らは2番目の質問を追加するとき、それは質問番号2及び質問を追加等
<script>
function insertQuestion(form) {
var $tbody = $('#qandatbl > tbody');
var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
var $qid = $("<td class='qid'>" + qnum + "</td>");
var $question = $("<td class='question'></td>");
$('.questionTextArea').each(function() {
var $this = $(this);
var $questionText = $("<textarea class='textAreaQuestion'></textarea>").attr('name',$this.attr('name')+"[]")
.attr('value',$this.val())
$question.append($questionText);
});
$tr.append($qid);
$tr.append($question);
$tbody.append($tr);
}
++qnum;
$(".questionNum").text(qnum);
$(".num_questions").val(qnum);
</script>
<form id="QandA" action="insertQuestion.php" method="post" >
<table id="question">
<tr>
<th colspan="2">
Question Number <span class="questionNum">1</span>
<input type="hidden" class="num_questions" value="" name="numQuestion">
</th>
</tr>
<tr>
<td rowspan="3">Question:</td>
<td rowspan="3">
<textarea class="questionTextArea" rows="5" cols="40" name="questionText"></textarea>
</td>
</tr>
</table>
</form>
は、それが値を挿入PHPコードです。 numQuestionを正しく表示するにはどうしたらいいですか?私は2回目の試験で質問を作成した後、2回目の試験で2回の試験を受けるかもしれないという事実のために、単純なカウントループを行うことができません。再度 '1'で始まる質問番号が必要です。 'numQuestion'を表示します。
$i = 0;
$c = count($_POST['gridValues']);
$insertquestion = array();
for($i = 0; $i < $c; $i++){
switch ($_POST['gridValues'][$i]){
case "3":
$selected_option = "A-C";
break;
case "4":
$selected_option = "A-D";
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($_POST['numQuestion']) ."','".
mysql_real_escape_string($_POST['questionText'][$i]) ."','".
mysql_real_escape_string($optionid) ."'";
}
$questionsql = "INSERT INTO Question (SessionId, QuestionId, QuestionContent, QuestionMarks, OptionId)
VALUES (" . implode('), (', $insertquestion) . ")";
echo($questionsql);
mysql_close();
質問IDは自動インクリメントですか?それは主キーですか? –
questionIdはコンポジットキーですが、自動インクリメントしたくありません。私は実際にはnumQuestionの値を取得したいだけです。自動インクリメントを忘れて、numQuestionの値を取得する方法を教えてください。 – user1309180
($ i = 0; $ i ++)の場合、条件文がありません。 –