我正在向我的数据库添加记录,但是当我达到2个相同的记录并添加另一个相同的记录时,它会使数据库中的条目加倍。
这是我的代码:
$q = mysql_query("SELECT * FROM grade1 WHERE G1StudNo = '$_POST[cat]' AND G1SCode = '$_POST[subcat]' ");
while($noticia2 = mysql_fetch_array($q)) {
if(empty($noticia2['G1Sem']) AND empty($noticia2['G1Year'])){
mysql_query("UPDATE grade1 SET G1Sem = '$_POST[Sem]', G1Year = '$_POST[Year]'
WHERE G1StudNo = '$_POST[cat]' AND G1SCode = '$_POST[subcat]'");
}
else {
$query = mysql_query("SELECT * FROM curriculum WHERE SCode='$_POST[subcat]'");
while($noticia = mysql_fetch_array($query)) {
$insertSQL1 = mysql_query("INSERT INTO grade1 (G1StudNo, G1SCode, G1Sem, G1Year, Semester, YearLevel)
VALUES ('$_POST[cat]','$_POST[subcat]','$_POST[Sem]','$_POST[Year]','$noticia[Semester]','$noticia[YearLevel]')");
}
}
}
答案 0 :(得分:0)
要看的第一个显而易见的地方是带有INSERT
子句的分支。我最好的猜测是从select语句select * from curriculum ...
返回的数据集返回2条记录。
编辑:
调用update子句的唯一时间是,如果学期和年份都是空的,可能应该是OR
,因为如果其中任何一个为空,则它是无效的条目。我不明白第二部分以及为什么要检查课程表
就插入而言:它可能只应在第一个查询的记录集找不到学生记录时使用。如果我正确阅读:目前只有在找到记录但是学期和年份为空时才会调用它。