它没有在数据库中正确插入这些数字

时间:2012-04-02 21:55:22

标签: php mysql

我有一个应用程序,它将问题添加到问题行中。我在使用数据库中的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>

1 个答案:

答案 0 :(得分:0)

如果您只是使用DELETE * FROM tableNameEMPTY function in phpMyAdminDELETE * FROM tableName)这是正常的,那么您只需拥有auto_increment的索引,并且当您最后删除表中的所有记录时auto_increment_id得到了保护。

如果您TRUNCATE此表auto_increment_id将返回1。