2012-04-02 7 views
0

Ich habe eine Anwendung, in der Fragen in Fragezeilen hinzugefügt werden. Ich habe jedoch ein Problem, wenn es darum geht, Werte in die Datenbank einzufügen.Es fügt diese Zahlen nicht korrekt in die Datenbank ein

ich meine Bewerbung, wenn ich 2 Fragen hinzufügen dann sieht es aus diesem unten wie:

SessionId QuestionId QuestionContent 

ABV   1   What is 2+2? 
ABV   2   What is 3+3? 

Aber wenn ich diese Werte in der Datenbank hinzufügen, dann fügt sie es wie folgt aus:

SessionId QuestionId QuestionContent 

    ABV   3   What is 2+2? 
    ABV   3   What is 3+3? 

Das Problem besteht darin, dass die nächste Frage nach den hinzugefügten Nummern eingefügt wird, in diesem Fall die Zahl "3". Wie kann ich die richtigen Fragezahlen wie das erste Beispiel in der Datenbank hinzufügen?

Unten ist die INSERT VALUES Code, den ich derzeit haben:

 $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); 

Unten ist die Javascript-Code, der die Frage Zahlen in den Tabellenzeilen in der Anwendung (ich die sessionId und Fragen in den Anhängen nicht enthalten fügt Code unten)

<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> 
+2

'var_dump ($ _ POST) zurückgegeben werden;' –

+0

Welche Anfragen kommen aus 'echo ($ questionsql);'? – CodeCaster

+0

@CodeCaster die Abfrage kommt heraus $ questionsql ist das, wenn ich versuche, 2 Fragen in die Datenbank einzufügen: 'INSERT INTO Frage (SessionId, QuestionId, QuestionContent) VALUES ('ABV', '3', 'Was ist 2 + 2? '), (' ABV ',' 3 ',' Was ist 3 + 3? ') ' – user1304948

Antwort

0

Wenn Sie nur DELETE * FROM tableName oder EMPTY function in phpMyAdmin (die DELETE * FROM tableName tun verwenden) ist es normal, u gerade Index mit auto_increment und wenn Sie alle Datensätze in der Tabelle löschen letzten auto_increment_id wird beibehalten.

Wenn Sie TRUNCATE diese Tabelle auto_increment_id wird auf 1.

Verwandte Themen