我是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