如何对其设定条件?PHP

如何对其设定条件?PHP,php,html,php-5.5,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','$lastn

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

我的代码中有一个问题,因为如果我添加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>";
} 
}
$sql=“插入学生值(“$stud\u id”、“$idno”、“$dept\u id”、“$progid”、“$syear”、“0”、“$lastname”、“$firstname”、”‌​$中间名“,“$year”)”;
$result=mysql\u query($sql)或die(mysql\u error());
如果($idno>1){
回显“该idno已存在,且当前年份准确”;
}否则{
mysql_查询(“插入到用户(stud_id、密码、用户类型)值(“$stud_id’、“$password’、“$user_type”)或die(mysql_error());
回音“\n”;
echo“警报('已成功添加');\n”;
echo“window.location='addusers.php';”;
回声“;
} 
}

您需要首先检查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>";
} 
$sql=mysql\u query(“从学生中选择*,其中idno='$idno')或die(mysql\u error())//基于idno的检查
如果(mysql_num_rows($sql)>0){//idno存在
回显“该idno已存在,且当前年份准确”;
}否则{//idno不存在
mysql_查询(“插入到用户(stud_id、密码、用户类型)值(“$stud_id’、“$password’、“$user_type”)或die(mysql_error());
回音“\n”;
echo“警报('已成功添加');\n”;
echo“window.location='addusers.php';”;
回声“;
} 

最后一点提示:不要继续使用mysql,因为它在较新版本的PHP上已被弃用。开始学习使用mysqli_uu。主键呢

ALTER TABLE student 
ADD PRIMARY KEY (idno)

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

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

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

我不推荐使用<代码> MySqLu考虑<代码> MySqLII<<代码>,或者甚至<代码> PDO<代码>,这里解释了PHP5.5的“<代码>未定义的< /代码>,如果您使用的是折旧<代码> MySqL**<代码>函数,我希望在将这些变量注入查询之前,您至少要调用
mysql\u real\u escape\u string
。在执行简单检查时,您也不应该使用
*
进行选择。如何,它不起作用$sql=mysql\u查询(“SELECT*from student where idno='$idno')或死亡(mysql\u error())//如果(mysql_num_rows($sql)>0){//idno exists echo“该idno在当前年份已经存在”;}否则{//idno不存在mysql_查询(“插入到用户(stud_id、密码、用户类型)值('$stud_id'、'$password'、'$user_type'))或死亡(mysql_error());echo“\n”;echo“警报('已成功添加”);\n;echo“window.location='addusers.php';“echo”“;}我有一个学年表,它是syearid,year _from和to _from,学生表syearid@CamilleValerio在学生上创建唯一索引UNIQUE_idx01(syearid,idno)$syear=$\u POST['syearid']$向往=日期('Y')$sql1=mysql\u查询(“选择*自学生,学年,其中idno='$idno'和student.syearid=school\u year.syearid和school\u year.FROM\u year,如$earnow”)或死亡(mysql\u error())//如果(mysql\u num\u rows($sql1)>0,{//idno exists echo“表示$idno已存在,且当前年份正好为$REASHOW”,则根据idno student.syearid=school\u year.syearid和school\u year.from\u year.from\u year进行检查;