PHP if 语句(如何检查用户输入重复记录)


php if statement (how to check the user input duplicate record)

如何检查用户和数据库之间的输入是否重复?这是用户将数据输入数据库的形式并且无论保存相同还是不相同的记录,此代码的结果都将有效。

    $con = mysql_connect("localhost","root","usbw");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    mysql_select_db("booking", $con);
    $year = $_POST['year'];
    $month = $_POST['month'];
    $day = $_POST['day'];
    $time = $_POST['time'];
    $classroom = $_POST['classroom']; 
    $subject = $_POST['subject'];
    $s=implode(" ",$subject);
    $sql1 = "SELECT * FROM `test` WHERE `year` LIMIT 0, 30 ";
    $result=mysql_query("$sql1");
    $row =mysql_fetch_row($result);


        $sql = "INSERT INTO `test`(`year`, `month`, `day`, `time`, `classroom`,`subject`) VALUES  ('$year','$month','$day','$time','$classroom','$s')";

    ?>

我写了一个我认为可以确定相同记录的代码如果相同,则用户无法输入。如果不是同一用户可以输入。代码表示如下:

 

if($row[1]==$year){ 
    echo'the data was repeated';

任何人都可以帮助解决我的 if 语句问题吗?

更新:

if($row[1]==$year){ 
    echo'the data was repeated';} else{
    $sql = "INSERT INTO `test`(`year`, `month`, `day`, `time`, `classroom`,`subject`) VALUES  ('$year','$month','$day','$time','$classroom','$s')";}

我写了这个语法错误....(解析错误:语法错误,中意外的"@")我应该使用 While-loop 重写吗?你能告诉我如何纠正代码吗?

$con = mysql_connect("localhost","root","usbw");
if (!$con) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db("booking", $con);
$year = $_POST['year'];
$month = $_POST['month'];
$day = $_POST['day'];
$time = $_POST['time'];
$classroom = $_POST['classroom']; 
$subject = $_POST['subject'];
$s=implode(" ",$subject);
$sql = "INSERT INTO `test`(`year`, `month`, `day`, `time`, `classroom`,`subject`) VALUES  ('$year','$month','$day','$time','$classroom','$s')";
$qr = mysql_query($sql);
if (!$qr) {
    echo mysql_error();
}

还有mysql....您需要更改类型...

CREATE TABLE `test` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `year` int(11) DEFAULT NULL,
  `month` int(11) DEFAULT NULL,
  `day` int(11) DEFAULT NULL,
  `time` int(11) DEFAULT NULL,
  `classroom` int(11) DEFAULT NULL,
  `subject` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `year` (`year`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

您可以在 mysql 中的年份列上放置唯一索引。对于所有用户来说,这将是独特的年份。

可能需要 2 个字段的唯一索引(年份 + 用户 ID)