检查重复项名称忽略条目

时间:2018-03-04 12:45:09

标签: php mysql

我正在使用以下代码在我的数据库中插入条目。但我可以多次添加相同的条目,我希望每当我在输入类型中提交相同的条目时,消息将显示“Nickname already exists

<div>	
 <form>
  <div>name <input  type="text" name="na"/></div>
  <div>marks1 <input  type="text" name="m1"/></div>
  <div>marks2<input  type="text" name="m2"/></div>
  <div>marks3 <input  type="text" name="m3"/></div>
  <div> <input  type="submit" name="save" value="save"/></div>
 </form>
</div>

这是我的PHP代码: -

<?php
if(!empty($_GET['save'])){
    $na=$_GET['na'];
    $m1=$_GET['m1'];
    $m2=$_GET['m2'];
    $m3=$_GET['m3'];
    $query="insert into student(name,marks1,marks2,marks3)  values('$na','$m1','$m2','$m3')";
    mysqli_query($connect,$query);
}
?>  

2 个答案:

答案 0 :(得分:1)

在数据库中创建一个唯一列,例如每个学生的唯一名称。因此,当您输入新记录时,首先检查它是否存在于数据库中。如果它在那里你可以向用户显示错误

例如,您可以设置这样的唯一约束

enter image description here

答案 1 :(得分:0)

在插入基地之前进行选择以检查用户名是否已存在。

对于显示用户名已存在的输入消息,您可以使用隐藏的段落:<p id="informationText" hidden>This paragraph should be hidden.</p>

然后,一旦您的选择请求返回,元组已经存在,请执行ajax查询以显示此段落:$('#informationText').removeAttr('hidden');

这是一种简单的方法,还有其他更好的方法可以对JavaScript Form Validation进行一些研究

第一次编辑

以下是代码示例:

<?php
if( isset( $_GET['save'] ) ){
    $na=$_GET['na'];
    $m1=$_GET['m1'];
    $m2=$_GET['m2'];
    $m3=$_GET['m3'];

    $query  = "select * from student where name = ? ";
    $result = mysqli_query( $connect,$query, array( &$na ) );
    $row    = mysqli_fetch_row( $result );

    if (count($row) > 0) {
      echo "<script>$('#informationText').text = "Username already exists";$('#informationText').removeAttr('hidden');</script>";
    } else {
      $query="insert into student(name,marks1,marks2,marks3)  values('$na','$m1','$m2','$m3')";
      mysqli_query($connect,$query);
    }
}
?>