Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查php/mysql中的多个重复值验证错误_Php_Mysql_Forms - Fatal编程技术网

检查php/mysql中的多个重复值验证错误

检查php/mysql中的多个重复值验证错误,php,mysql,forms,Php,Mysql,Forms,我试图在数据库中插入一个带有几个必填字段的表单值,但在插入之前,我想检查数据库中是否已经存在任何相同的值 <?php include_once 'header.php';$flag=0; if(isset($_POST['submit'])) { $eid =$_POST["eid"]; if($eid=="blank") {$flag=1; $idErr="please Select E-MITRA";} else{ $sqli="SELECT * FROM emi

我试图在数据库中插入一个带有几个必填字段的表单值,但在插入之前,我想检查数据库中是否已经存在任何相同的值

<?php include_once 'header.php';$flag=0;
if(isset($_POST['submit']))
 {  $eid =$_POST["eid"];
   if($eid=="blank") {$flag=1;
  $idErr="please Select E-MITRA";}
  else{
  $sqli="SELECT * FROM emitra_device where uid='$eid'";
  $result1 = $conn->query($sqli);
$rowe=mysqli_fetch_array($result1);
if($rowe!=""){ $flag=1;
$idErr=" User ID Already Entered";} }

$miatm =trim($_POST["miatm"]);
 if(empty($miatm) || !preg_match("/^[a-zA-Z0-9 ]*$/",$miatm)) {$flag=1; 
$miErr="Please Enter Valid  Id"; }
 else{$sqlm="SELECT * FROM emitra_device where m_sno='$miatm'";
  $resultm = $conn->query($sqlm);
$rowm=mysqli_fetch_array($resultm);
if($rowm!="")
{$flag=1;$miErr=" machine ID Already Entered";}}   
//表单编码就像是

<form id="basic" method="post" name="basic"> 
<select class="select-style gender" name="eid">
<option value="blank">Please Select E-MITRA ID</option> 
 <option value="****">*****</option></select>
  <?php echo $idErr;?>

<p class="contact"><label for="bid">m/s Serial No</label></p> 
<input type="text" name="miatm" value ="<?php if (isset($miatm)) echo $miatm; ?>"/> <?php echo $miErr; ?>

 ........more
但在这种情况下,我无法向用户显示他输入的内容,例如重复的ID/Mno/etc。
请建议更好的方法

您仍然可以向用户显示他输入的内容。方法如下:

您不需要从表中选择所有字段。只需选择您想要进行重复检查的5个字段

得到结果后,您将foreach/for循环检查哪一列符合用户输入的值。无论哪个符合,都已经输入了

$error_array = array();
foreach($duperaw as $this_row)
{
    if($this_row['uid'] == $eid) 
        $error_array[] = 'User ID Already Entered';

    if($this_row['m_sno'] == $miatm) 
        $error_array[] = 'Machine ID Already Entered';
    .. .. ..
}

然后显示包含错误的完整数组

您仍然可以向用户显示他输入的内容。方法如下:

您不需要从表中选择所有字段。只需选择您想要进行重复检查的5个字段

得到结果后,您将foreach/for循环检查哪一列符合用户输入的值。无论哪个符合,都已经输入了

$error_array = array();
foreach($duperaw as $this_row)
{
    if($this_row['uid'] == $eid) 
        $error_array[] = 'User ID Already Entered';

    if($this_row['m_sno'] == $miatm) 
        $error_array[] = 'Machine ID Already Entered';
    .. .. ..
}

然后显示包含错误的完整数组

如果数据库中的任何字段都没有值,则会发生什么情况。这意味着它的值为null,然后if条件将失败,并且该字段不是重复的字段。如果If条件均不为true,则错误数组完全为空,这意味着输入的POST参数中没有一个是重复的。如果数据库中的任何字段没有值,则会发生什么情况..意味着其值为null,然后If条件将失败,并且该字段不是重复的字段。如果If条件都不为true,则错误数组完全为空,这意味着输入的POST参数都不是重复的。
$error_array = array();
foreach($duperaw as $this_row)
{
    if($this_row['uid'] == $eid) 
        $error_array[] = 'User ID Already Entered';

    if($this_row['m_sno'] == $miatm) 
        $error_array[] = 'Machine ID Already Entered';
    .. .. ..
}