检查mysql中的多个电子邮件字段

时间:2013-01-27 17:45:40

标签: php html mysql

我有一个包含多个“电子邮件”输入字段的表单。每个都在mysql中检查以检查它是否在数据库中。我现在的工作原理是,如果一个字段中有错误的电子邮件,则回显正确的消息,如果所有字段都为空,它也会回显正确的消息。如果最后一个输入字段是正确的电子邮件,它也可以。一个问题是,如果一个或多个字段中的正确电子邮件地址不是最后一个,并且没有其他不正确的电子邮件,则会回显“未填写”。我可以通过在{$x = "1"}内添加一个中断来解决这个问题,但随后它会搞乱mysql检查,因为它需要继续,直到/如果条件不满足。有什么我可以做的吗?

foreach($_POST as $value)
  {
     if(empty($value))
      {
       $x = "0";
      } else
     if(!empty($value))
      {
        $usercheck =  "SELECT email FROM users WHERE email = '$value'";
        $usercheck = $db->query($usercheck);

     if($usercheck->num_rows > 0)
      {
        $x="1";
      } else
        {
          $x="2"; break;
        }
      }
  } 

if($x == "0") {echo "none filled in";}
if($x == "1") {echo "all good";}
if($x == "2") {echo $value." is not a user";} 

1 个答案:

答案 0 :(得分:0)

$i=1;  
foreach($_POST as $value)
      {
         if(empty($value))
          {
           $x = "0";
          } else
         if(!empty($value))
          {
            $usercheck =  "SELECT email FROM users WHERE email = '$value'";
            $usercheck = $db->query($usercheck);

         if($usercheck->num_rows > 0)
          {
            $x="1";
          } else
            {
              $x="2";
            }  
          }
       $field[$i]=$x;
       $i++;
      } 

现在,您在$field数组中的所有三个字段结果分别位于第1,第2和第3位。