我想以不同的方式插入多个条目,即多个条目到数据库中,但输入来自相同的表单。
我有一个名为 questionForm 的表格。它是一种静态表单,具有用于插入问题的文本字段和相应的文本字段,例如为该问题分配的标记、该问题的复杂程度、该问题中存在的tag1 到 tag8(该问题中的关键字)等。
现在我希望在提交表单时将这些问题中的每一个都插入我的数据库中。但在将表格中输入的每个问题的标签与数据库中每个问题的标签进行比较之前,不要先确保没有重复。我该怎么做呢。
我知道通过一个简单的表单将一个条目插入到数据库中。有人可以帮助我吗?
我现在已经完成了几乎一半的编码。我现在可以将条目插入表单,但它不能正确检查重复项。这是我的问题表格和 php 文件 -
问题形式
测试任务
输入主题详细信息。
年月: 学期: 学科: 分部:<h3>Enter Questions</h3><br>
<h3>Question 1: Five marks each.<br></h3>
a) <input type="text" name="field1[]" size=45>* Marks: <input type="text" name="field2[]"> Complexity:<input type="text" name="field3[]"> Chapter No.: <input type="text" name="field4[]"> Tags: <input type="text" name="field5[]" size=10> <input type="text" name="field6[]" size=10> <input type="text" name="field7[]" size=10> <input type="text" name="field8[]" size=10> <input type="text" name="field9[]" size=10> <br>
b) <input type="text" name="field1[]" size=45>* Marks: <input type="text" name="field2[]"> Complexity:<input type="text" name="field3[]"> Chapter No.: <input type="text" name="field4[]"> Tags: <input type="text" name="field5[]" size=10> <input type="text" name="field6[]" size=10> <input type="text" name="field7[]" size=10> <input type="text" name="field8[]" size=10> <input type="text" name="field9[]" size=10> <br>
<p><input type="submit" name="submit" value="Submit" />
<input type='reset' name='Cancel' value='Cancel' /></p>
</form>
</body>
</html>
任务.php
include('connectionfile.php');
$cnt = count($_POST['field1']);
$my= $_POST['my'];
$sem= $_POST['sem'];
$subj= $_POST['subj'];
$branch= $_POST['branch'];
if ($cnt > 0) {
for ($i=0; $i<$cnt; $i++)
{
$t1 = $_POST['field5'][$i];
$t2 = $_POST['field6'][$i];
$t3 = $_POST['field7'][$i];
$t4 = $_POST['field8'][$i];
$t5 = $_POST['field9'][$i];
$result = "SELECT * FROM paper WHERE (((`tag1` LIKE '%".$t1."%') OR (`tag1` LIKE '%".$t2."%') OR (`tag1` LIKE '%".$t3."%') OR (`tag1` LIKE '%".$t4."%') OR (`tag1` LIKE '%".$t5."%')) AND ((`tag2` LIKE '%".$t2."%') OR (`tag2` LIKE '%".$t3."%') OR (`tag2` LIKE '%".$t4."%') OR (`tag2` LIKE '%".$t5."%')) AND ((`tag3` LIKE '%".$t3."%') OR (`tag3` LIKE '%".$t4."%') OR (`tag3` LIKE '%".$t5."%')) AND ((`tag4` LIKE '%".$t4."%') OR (`tag4` LIKE '%".$t5."%')) AND ((`tag5` LIKE '%".$t5."%')) ) ;" ; // which checks if the tags in that question match with the tags of any other question in the db.
$sql= mysql_query($result) OR die(mysql_error()) ;
$duplicates = mysql_num_rows($sql);
if( $duplicates > 0)
echo "No entry entered for Entry #$i since it may lead to duplicates."; // no entry is inserted in insertArr[] if it leads to duplication
else
$insertArr[] = "('" .$_POST['field1'][$i]. "', '" .$_POST['field2'][$i]. "', '" .$_POST['field3'][$i]. "', '" .$_POST['field4'][$i]. "', '" .$_POST['field5'][$i]. "', '" .$_POST['field6'][$i]. "', '" .$_POST['field7'][$i]. "', '" .$_POST['field8'][$i]. "', '" .$_POST['field9'][$i]. "', '".$my."', '".$sem."', '".$subj."', '".$branch."')";
}
$query1 = "INSERT INTO paper (question, marks_allotted, complexity, chp_no, tag1, tag2, tag3, tag4, tag5, monthandyear, semester, subject_name, branch_name) VALUES " . implode(", ", $insertArr);
mysql_query($query1) or trigger_error("Insert failed: " . mysql_error());
}
echo("<pre>\n");
print_r($_POST);
echo("</pre>\n");
mysql_close($id_link);
?>
运行时,尽管我输入的问题与数据库中的现有问题没有匹配的标签,但在运行时给了我以下信息:没有为条目 #0 输入条目,因为它可能导致重复。没有为条目 #1 输入条目,因为它可能导致重复。注意:未定义的变量:第 41 行的 insertArr
警告:implode() [function.implode]:第 41 行传递的参数无效
注意:插入失败:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 43 行的 '' 附近使用
请指导我