2017-10-07 75 views
-3

現在我的代碼檢查數據庫中是否存在用戶名和電子郵件變量,因爲它們都是唯一鍵,但是如何使其可以檢查每個個別並輸出不同的迴應?如何分別檢查數據庫中是否存在PHP用戶名或電子郵件

如果用戶名存在 - >「該用戶名已存在。」 或者電子郵件存在,但用戶名不存在 - >「該電子郵件已存在。」

<?php 
    include 'include/connection.php'; 

    $username = mysqli_real_escape_string($conn, $_REQUEST['username']); 
    $password = mysqli_real_escape_string($conn, $_REQUEST['password']); 
    $name = mysqli_real_escape_string($conn, $_REQUEST['name']); 
    $email = mysqli_real_escape_string($conn, $_REQUEST['email']); 

    $sql = "INSERT INTO userdata (username, password, name, email) VALUES ('$username', '$password', '$name', '$email')"; 

    if (mysqli_query($conn, $sql)) { 
    echo "Your account was created successfully, please login to continue."; 
    echo '<form action="login.php"> 
      <input type="submit" name="login" id="login" value="Login" /> 
      </form>'; 
    } else { 
    echo "That username already exists, please try again."; 
    echo '<form action="registration.php"> 
      <input type="submit" name="register" id="register" value="Register" /> 
      </form>'; 
    } 
?> 
+1

下面是完整的解釋,請點擊此處https://stackoverflow.com/questions/33129791/check-if-already-a-user-then-insert-into-the-database-php –

+0

@Kheteshkumawat所以我在嘗試將其插入數據庫之前,應檢查用戶名或電子郵件是否存在? – ChaCol

+0

我評論鏈接到完整的解釋這個答案首先你選擇查詢運行比檢查重複的條目電子郵件和用戶名。 –

回答

1

一個具有功能和寫SQL檢查emailusername兩個可能的途徑。

SELECT username, email from userdata where username = ? OR email = ? 

而且,通過ResultSet循環,並檢查是否emailusername存在並返回相應的錯誤信息。

0

嘗試這個

$checkUserNameSql = "Select Count(username) as username from userdata WHERE username = '".$username."'"; 

$result=mysql_query($checkUserNameSql); 
$data=mysql_fetch_assoc($result); 

echo $data['username']; 

如果你得到一個數,你可以申請你該檢查。

+0

'$ result_username = mysqli_query($康恩, 「選擇的用戶名FROM的userdata其中username = $用戶名」);' '$ username_count = mysqli_num_rows($ result_username);' '}否則如果($ username_count == 1) {'我嘗試了這樣的事情,但它說「mysqli_num_rows()期望參數1是mysqli_result」 – ChaCol

+0

您的SELECT查詢是worng。 '「SELECT username FROM userdate WHERE username ='。$ username。'」 –

+0

我修正了這個問題,但現在它完全忽略了我的else語句。如果用戶名存在,它會跳到我的else語句,而不是去我的'} else if($ count_username == 1){' – ChaCol

-1

使用下面的代碼。首先你需要檢查用戶名和電子郵件,然後插入記錄。

include 'include/connection.php'; 
$username = mysqli_real_escape_string($conn, $_REQUEST['username']); 
    $password = mysqli_real_escape_string($conn, $_REQUEST['password']); 
    $name = mysqli_real_escape_string($conn, $_REQUEST['name']); 
    $email = mysqli_real_escape_string($conn, $_REQUEST['email']); 

    $checkUser = 'select email ,username from userdata where email="'.$email.'" or username = "'.$username.'"'; 
    $result  = mysqli_query($conn,$checkUser); 
    $row   = mysqli_fetch_assoc($result); 
    if(!empty($row)){ 
    if($row['email']==$email){ 
     echo "That email already exists. Please try again"; 
    } 
    else if($row['username']==$username){ 
     echo "That username already exists. Please try again"; 
    } 

    echo '<form action="registration.php"> 
     <input type="submit" name="register" id="register" value="Register" /> 
     </form>'; 
    } 
    else{ 

    $sql = "INSERT INTO userdata (username, password, name, email) VALUES ('$username', '$password', '$name', '$email')"; 
    if (mysqli_query($conn, $sql)) { 
    echo "Your account was created successfully, please login to continue."; 
    echo '<form action="login.php"> 
      <input type="submit" name="login" id="login" value="Login" /> 
      </form>'; 
    } 
    } 
+0

向下投票者好心解釋這段代碼有什麼錯? – sheraz

相關問題