2012-04-01 66 views
0

我有以下Javascript和表單代碼:它不會在數據庫中插入值

<script> 

    var qnum = 1; 

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

    } 

</script> 

形式:

<form id="QandA" action="<?php echo htmlentities($action); ?>" method="post" > 

<h1><?php echo $_SESSION['id'] ?></h1> 

    <table id="qandatbl" align="center"> 
    <thead> 
    <tr> 
     <th class="qid">Question No</th> 
    </tr> 
    </thead> 
    <tbody></tbody> 
    </table> 

    <p><input id="submitBtn" name="submitDetails" type="submit" value="Submit Details" /></p> 

    </form> 

發生的事情是,在PHP代碼它增加了一個問題每個表格行($ qid)中的表格中的數字(qnum)。

問題是,雖然我想在數據庫中插入問題編號,但它根本沒有這樣做。如何使用INSERT VALUES在數據庫中添加問題編號?它應該是數據庫中每行1個問題編號。我也希望將SessionId($ _POST ['id'])插入數據庫以及每行。

下面是PHP插入值的代碼,我目前有:

<?php 

    session_start(); 

    $username="xxx"; 
    $password="xxx"; 
    $database="xxx"; 

    mysql_connect('localhost',$username,$password); 

    mysql_select_db($database) or die("Unable to select database"); 

     $insertquestion = array(); 


    $insertquestion[] = "' ". mysql_real_escape_string($_POST['id']) . "' , ' ". mysql_real_escape_string($_POST[$qid]) . "'"; 

    $questionsql = "INSERT INTO Question (SessionId, QuestionId) 
    VALUES (" . implode('), (', $insertquestion) . ")"; 



mysql_query($questionsql); 

mysql_close(); 

?> 

編輯:

我已經包括已經和的var_dump mysql_error()之後出現的通知;

注意:未定義指數:ID在/Mobile_app/insertQuestion.php線路28上

說明:未定義變量:在/Mobile_app/insertQuestion.php QID線路28上

說明:未定義指數:在/Mobile_app/insertQuestion.php on line 28 string(9)「'',''」

+4

'echo $ questionsql; echo mysql_error();' – JJJ 2012-04-01 20:54:23

+0

那第一個代碼片段?那是什麼? – PeeHaa 2012-04-01 20:55:56

+7

不要使用'@'來壓縮錯誤。 – PeeHaa 2012-04-01 20:56:39

回答

1

在開始研究數據庫的東西之前,您需要仔細檢查您的javascript和html:目前我沒有看到任何input元素name屬性id所以在我看來,當你使用$_POST['id']時,你應該得到一個未定義變量的警告。這同樣適用於$_POST[$qid]

除此之外,如果id應該是一個整數,我將它轉換爲int,而不是引用它:

$insertquestion[] = (int) $_POST['id'] . ",". (int) $_POST[$qid]; 

如果他們不都應該是整數,我至少會刪除報價後的領先空間。