如何制定条件? PHP

时间:2015-11-25 06:10:41

标签: php html php-5.5

我在添加学生信息时遇到了困难。我希望我的程序每年只能保存学生信息一次。

我的代码中有问题,因为如果我添加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>";
} 
}

enter image description here

3 个答案:

答案 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)

主键怎么样?

ALTER TABLE student 
ADD PRIMARY KEY (idno)

http://www.mysqltutorial.org/mysql-primary-key/

答案 2 :(得分:0)

您是否有一个专栏可以告诉您学生的注册年份?如果是,您可以使用idno创建一个唯一的索引:

CREATE UNIQUE INDEX unique_idx01 on tableNAME(reg_year, idno);

然后当您插入具有相同年份和idno的另一行时,mysql将给出错误(1062)