我在下面有一个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 INSERT VALUES代码:
<?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()之后出现的通知;
注意:未定义索引:第28行/Mobile_app/insertQuestion.php中的id
注意:未定义的变量:第28行的/Mobile_app/insertQuestion.php中的qid
注意:未定义的索引:在第28行的/Mobile_app/insertQuestion.php中 string(9)“'',''”
答案 0 :(得分:1)
在开始使用数据库之前,您需要仔细检查您的javascript和html:目前我没有看到任何input
元素的name
属性为id
所以在我看来,当你使用$_POST['id']
时,你应该得到一个未定义变量的警告。这同样适用于$_POST[$qid]
。
除此之外,如果id
应该是一个整数,我会把它转换为int
而不引用它:
$insertquestion[] = (int) $_POST['id'] . ",". (int) $_POST[$qid];
如果它们都不应该是整数,我至少会在引号后删除前导空格。