我是PHP和Mysql的新手,因为某些原因,它只会检查语句,如果($ email == $ result2)输入是用户名或电子邮件。我不知道为什么?有人可以从逻辑上解释它,我坚持几个小时搞清楚它。 :(谢谢请善待。我不知道这段代码有什么问题SQL
<?php
session_start();
include_once("connect.php");
$email = $_POST['email'];
$username = $_POST['username'];
//echo $_POST['email'];
if(isset($_POST['email']))
{
$extract= mysql_query("SELECT username, email FROM users");
$resultq = mysql_num_rows($extract);
while($row= mysql_fetch_array($extract))
{
$result = $row['username'];
$result2 = $row['email'];
//$pass = $_POST['pass'];
if($email == $result2)
{ //check if there is already an entry for that username
echo "Email Address is already used!";
exit(); //break;
}
if ($username == $result)
{
echo " Username is already Taken!";
//mysql_query("INSERT INTO users (Username, Password) VALUES ('$user', '$pass')");
//header("location:index.php");
exit(); //break;
}
else
{
}
}
}
什么意思 –
这可能会非常慢。如果你的用户表中有大量的行呢?这是很多数据要返回和迭代。我认为你应该重构这个以在你的查询中包含电子邮件和用户名参数*,并让数据库为你完成工作。 –
删除'exit()'。删除空的'else'。如果你希望第二个条件只在第一个条件为false时被检查,那么使用'else if'。如果没有,使用'if'。无论哪种情况,我都不需要'exit()'。 – Ariane