0

複数の「メール」入力フィールドを持つフォームがあります。それぞれがmysqlでチェックされ、データベースにあるかどうかがチェックされます。私が今持っているものは、間違った電子メールがフィールドの1つにある場合に機能し、正しいメッセージをエコーし​​、すべてのフィールドが空の場合も正しいメッセージをエコーし​​ます。また、最後の入力フィールドが正しい電子メールである場合も機能します。1 つの問題は、最後のフィールド以外の 1 つ以上のフィールドに正しい電子メール アドレスがあり、他に間違った電子メールがない場合、「入力なし」と表示されることです。内部にブレークを追加することでこれを修正でき{$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";} 
4

1 に答える 1

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++;
      } 

これで、3 つのフィールド結果すべてが$field配列の 1 番目、2 番目、3 番目の位置に配置されました。

于 2013-01-27T17:58:07.243 に答える