我有一个应用程序,它将问题添加到问题行中。我在使用数据库中的INSERTING VALUES时遇到了问题。
我是我的申请,如果我添加2个问题,那么它如下所示:
SessionId QuestionId QuestionContent
ABV 1 What is 2+2?
ABV 2 What is 3+3?
但是如果我在数据库中添加这些值,那么它会像这样插入:
SessionId QuestionId QuestionContent
ABV 3 What is 2+2?
ABV 3 What is 3+3?
问题是它是在已经添加的那些之后插入下一个问题编号,在这种情况下是数字'3'。如何在数据库中添加正确的问题编号,如第一个示例?
以下是我目前拥有的INSERT VALUES代码:
$insertquestion = array();
foreach($_POST['questionText'] as $question)
{
$insertquestion[] = "' ". mysql_real_escape_string( $_SESSION['id'] ) . "' , ' ". mysql_real_escape_string( $_POST['num_questions'] ) . "', ' ". mysql_real_escape_string( $question ) . "'";
}
$questionsql = "INSERT INTO Question (SessionId, QuestionId, QuestionContent)
VALUES (" . implode('), (', $insertquestion) . ")";
echo($questionsql);
下面是javascript代码,它在应用程序的表行中添加了问题编号(我没有在下面的代码中附加sessionId和Questions)
<script>
function insertQuestion(form) {
var $tbody = $('#qandatbl > tbody');
var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
var $qid = $("<td class='qid'>" + qnum + "</td>");
$tr.append($qid);
$tbody.append($tr);
++qnum;
$("#questionNum").text(qnum);
$("#num_questions").val(qnum);
</script>
<form id="QandA" action="insertQuestion.php" method="post" >
<input type="hidden" id ="num_questions" value="" name="num_questions">
<div id="detailsBlock">
<table id="question">
<tr>
<th colspan="2">
Question Number <span id="questionNum">1</span>
</th>
</tr>
</table>
</form>
答案 0 :(得分:0)
如果您只是使用DELETE * FROM tableName
或EMPTY function in phpMyAdmin
(DELETE * FROM tableName
)这是正常的,那么您只需拥有auto_increment
的索引,并且当您最后删除表中的所有记录时auto_increment_id
得到了保护。
如果您TRUNCATE
此表auto_increment_id
将返回1。