Php检查同一个表中的2个值

时间:2015-12-02 07:03:53

标签: php mysql

如何检查2个值是否存在,例如

=============\
idno   || syearid
c23        2
c23        3

如下图所示:

enter image description here

如果idno c23存在且syearid 2存在,则会发出此idnosyearuid的消息。但是当我保存idno c23syearid 4时,它会被保存,因为它是相同的idno但不是syearid。我该怎么办?

<?php
    if (isset($_POST['save'])){
    $stud_id= $_POST['stud_id'];
    $idno = $_POST['idno'];
    $lastname = $_POST['lastname'];
    $firstname = $_POST['firstname'];
    $middlename= $_POST['middlename'];
    $year= $_POST['year'];
    $dept_id = $_POST['dept_id'];
    $progid = $_POST['progid'];
    $user_type = $_POST['user_type'];
    $password= $_POST['password'];
    $syear= $_POST['syearid'];
    $YearNow=Date('Y');

    $sql1 = mysql_query("SELECT * FROM student,school_year where idno = '$idno' AND student.syearid = school_year.syearid AND school_year.from_year like $YearNow")or die(mysql_error());
    $count1 = mysql_num_rows($sql1);

     if ($idno AND $YearNow == $count1 >1 ) {
         echo"idno $idno has already exist with an exact current year $YearNow";

    }
    else{

    // query
    $sql = "INSERT INTO student VALUES ('$stud_id','$idno','$dept_id','$progid','$syear','0','$lastname','$firstname','$middlename','$year','$password','$user_type')";
    $result = mysql_query($sql) or die(mysql_error());



    echo "<script type='text/javascript'>\n";
    echo "alert('Successfully Added.');\n";
    echo "window.location = 'addusers.php';";
    echo "</script>";
    }

?>

2 个答案:

答案 0 :(得分:1)

您可以将“idno”和“syearid”作为表格的复合唯一键

ALTER TABLE student ADD UNIQUE KEY (idno, syearid);

将idno和syearid的组合视为唯一实体,数据库在插入重复条目时会产生错误。

答案 1 :(得分:0)

生成一个数组  然后你就可以在逻辑中执行检查了,  例如检查id​​no id 2。

我希望这是你想要的。

if(in_array(2, $idno)){
    // echo id 2 is received
}