Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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 - Fatal编程技术网

语句不检查php mysql中的电子邮件值

语句不检查php mysql中的电子邮件值,php,mysql,Php,Mysql,我正在检查数据库中是否不存在用户名和电子邮件。 它完美地检查用户名,但它跳过电子邮件我的意思是不检查电子邮件是否存在。 这是我的db表,如下所示: 我试图把同样的电子邮件输入到数据库中。 我想要的是检查电子邮件和用户名中的所有行,如果数据已经存在,则显示一个错误 <?php include 'template-parts/header.php'; ?> <main class="main-wrap"> <div class="container"> &

我正在检查数据库中是否不存在用户名和电子邮件。 它完美地检查用户名,但它跳过电子邮件我的意思是不检查电子邮件是否存在。 这是我的db表,如下所示:

我试图把同样的电子邮件输入到数据库中。 我想要的是检查电子邮件和用户名中的所有行,如果数据已经存在,则显示一个错误

<?php include 'template-parts/header.php'; ?>

  <main class="main-wrap">
<div class="container">
<main class="main-content">
<div class="login-form-wrap">
      <div class="phdr">Registration</div>
      <div class="pad">
        <?php
        include 'config/connection.php';
        if (isset($_POST['regbtn'])) {
          $name = $_POST['regname'];
          $email = $_POST['regemail'];
          $password = $_POST['regpassword'];
          $phone = $_POST['regphone'];

          $mysql = "SELECT * FROM users";
          $myque = mysqli_query($con,$mysql);
          $myres = mysqli_fetch_assoc($myque);
          if ($myres['username'] == $name) { ?>
            <script type="text/javascript">
              alert('Username Already Exist!');
            </script>
          <?php }
          if ($myres['useremail'] == $email) { ?>
            <script type="text/javascript">
              alert('Email Already Exist!');
            </script>
          <?php }
        }
        ?>
        <form class="#" action="" method="post">
          <p>
            <label for="name"></label>
            <input type="text" id="name" name="regname" placeholder="Enter Full Name...">
          </p>
          <p>
            <label for="email"></label>
            <input type="email" id="email" name="regemail" placeholder="Enter Email Address...">
          </p>
          <p>
            <label for="password"></label>
            <input type="text" id="password" name="regpassword" placeholder="Enter Password...">
          </p>
          <p>
            <label for="phone"></label>
            <input type="text" id="phone" name="regphone" placeholder="Enter Phone Number...">
          </p>
          <p>
            <input type="submit" name="regbtn" value="Sign Up">
          </p>
        </form>
      </div>
    </div>
  </main>
</div>

登记处
警报('用户名已存在!');
警报('电子邮件已存在!');


如果用户名存在,则显示警报;如果电子邮件存在,则不显示警报。

您需要迭代结果,如果您要检查的电子邮件不在结果集的第一行,则“如果($myres['useremail']==$email)”将返回false。
或者直接在查询中使用名称和电子邮件(确保正确转义,因为它直接来自$\u POST!),因此您不需要运行所有数据集。

您需要在循环中使用
$myres=mysqli\u fetch\u assoc($myque)
,因为当前名称和电子邮件仅与第一个结果集进行比较。

您可以发布(修订)
users
表的内容和您的输入?您只调用了
mysqli\u fetch\u assoc
一次,所以您只需检查第一行。@Jan Wichelmaan我已经用db表的img更新了代码。希望您理解。tnxd用户名/电子邮件地址组合是否有效?我只想检查用户名或电子邮件是否无效t exists.if exists show the error.是否有任何方法检查useremail字段的所有数据?请参阅我的第一条评论和下面的答案。您需要迭代整个结果集,而不是只调用
mysqli\u fetch\u assoc
一次。我如何检查该字段“useremail”和“username”中的所有数据在我的数据库中,如果存在电子邮件或用户名,则显示错误?