我在添加学生信息时遇到了困难。我希望我的程序每年只能保存学生信息一次。
我的代码中有问题,因为如果我添加idno = c24然后保存它,它将保存但是当我再次尝试添加相同的idno时它将再次保存。请帮助我的条件,idno可以保存1 idno(每年一次),并有一个错误消息,该idno已在今年注册。
这是我的代码:
$sql = "INSERT INTO student VALUES ('$stud_id','$idno','$dept_id','$progid','$syear','0','$lastname','$firstname','$middlename','$year')";
$result = mysql_query($sql) or die(mysql_error());
if ($idno > 1) {
echo"that idno has already exist with exact current year";
} else {
mysql_query("insert into users (stud_id,password,user_type) values('$stud_id','$password','$user_type')")or die(mysql_error());
echo "<script type='text/javascript'>\n";
echo "alert('Successfully Added.');\n";
echo "window.location = 'addusers.php';";
echo "</script>";
}
}
答案 0 :(得分:0)
您需要首先检查ID是否存在,如果是,则提醒消息并且不要插入。
$sql = mysql_query("select * from student where idno = '$idno'") or die(mysql_error()); //check based on idno
if(mysql_num_rows($sql) > 0){ //idno exists
echo"that idno has already exist with exact current year";
}else { //idno does not exist
mysql_query("insert into users (stud_id,password,user_type) values('$stud_id','$password','$user_type')")or die(mysql_error());
echo "<script type='text/javascript'>\n";
echo "alert('Successfully Added.');\n";
echo "window.location = 'addusers.php';";
echo "</script>";
}
最后提示:不要继续使用mysql_,因为它在较新版本的PHP上已弃用。开始学习使用mysqli_代替。
答案 1 :(得分:0)
答案 2 :(得分:0)
您是否有一个专栏可以告诉您学生的注册年份?如果是,您可以使用idno创建一个唯一的索引:
CREATE UNIQUE INDEX unique_idx01 on tableNAME(reg_year, idno);
然后当您插入具有相同年份和idno的另一行时,mysql将给出错误(1062)