PHP比较数据库中的值

时间:2016-09-13 06:50:25

标签: php mysql

我有一个包含4个以上字段的表单,插入这些字段的所有数据都是相关的,所以我想要实现不同的东西。
例如 - 我有4个字段,其名称为class class_time class_teacher& batch_name每当我填写并提交表格时,数据将被提交到数据库中,基本上它是一个时间表脚本。
因此,如果我第一次添加maths 12-01 ashok IAS这些值并提交表单并保存,现在如果我第二次添加相同的时间和教师姓名不同然后它应该显示错误并且表单不应该提交,因为同一个教师不能同时出现在两个不同的类中。我怎么能用PHP实现这个目标  这是我尝试过的一些代码。

$sql2 = "SELECT * FROM `s_timetable`";
$res = mysql_query($sql2) or die(mysql_error());
$fetch_data = mysql_fetch_array($res);

if ($fetch_data['class_info'] && $fetch_data['teacher_info']) == $_POST['class'] && $_POST['teacher'] 
{

}

4 个答案:

答案 0 :(得分:2)

在插入新数据之前,您可以通过以下给定查询检查事物,如果该查询返回的行数超过0,则可以显示错误消息

select * from `tablename` where `class_time` = '".$class_time."' and `class_teacher`='".$class_teacher."'

你不应该使用任何mysql _ * - 函数。它们自php 5.5以来已被弃用,并在最新的php版本中被完全删除

答案 1 :(得分:1)

而不是在PHP中执行此操作,您只需添加一个复合唯一键,该键不允许在数据库中同时拥有相同的教师。

DATE(YEAR(A3),MONTH(A3),1) -- Year & month from Cell A3 & 1st day

现在,每当您尝试插入新数据时,如果同一位教师同时存在,则会返回SQL错误。

Multiple column index documentation

答案 2 :(得分:0)

您需要先检查用户是否已在桌面中。

$sql = mysql_query("select * from table_name where class_time ='" . $_REQUEST['class_time'] . "' AND class_teacher ='" . $_REQUEST['class_teacher'] . "'");

$record = mysql_num_row($sql);

if ($record) {
    echo "Record already exits";
    exit();
} else {
//insert query
}

注意:停止使用mysql,不推荐使用它。

答案 3 :(得分:0)

只需添加一个将选择class_time和class_teacher的查询,这样如果它已经存在,则可以产生错误信息。

   $checksched = mysqli_query($con,"SELECT * FROM s_timetable  WHERE class_time = '".$inputted_time."'  and  class_teacher = 'inputted_teacher' ")
   $match  = mysqli_num_rows($checksched);

if ($match > 0){
echo "<script>
alert('Teacher already exist!');
</script>";
}