检查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';
.. .. ..
}