php
  • mysql
  • 2014-02-27 83 views 1 likes 
    1

    我允許人們輸入他們的用戶名,帳號或電子郵件地址之前輸入密碼,所以我需要比較他們的輸入對我的表中的3個字段,但我沒有得到任何結果。MySQL使用WHERE和或

    我第一次嘗試這個...

    $result = mysqli_query($con,"SELECT * FROM useraccounts WHERE username='$thisuser' or accnum='$thisuser' or email='$thisuser'"); 
    

    然後我在這裏讀上支架周圍應放置或語句,所以嘗試這...

    $result = mysqli_query($con,"SELECT * FROM useraccounts WHERE (username='$thisuser' or accnum='$thisuser' or email='$thisuser')"); 
    

    但既不工作,能有人請幫助

    只是爲了比較,這是行不通的,當我輸入用戶名值...

    $result = mysqli_query($con,"SELECT * FROM useraccounts WHERE username='$thisuser'"); 
    
    +0

    請將剩下的代碼粘貼。 '$ thisuser'是否包含正確的值?你確定它存在於數據庫中嗎? – cornelb

    +0

    你可以打印'$ result'嗎? – GuyT

    +1

    括號在那裏是不需要的(你使用它們來強制操作符的優先級,如果你需要檢查任何這些字段和密碼的匹配,這將是必需的)。但是從語法的角度來看,這兩個查詢看起來都很好。 – Kickstart

    回答

    1

    什麼是accnum的數據類型?你確定它是varchar嗎?

    如果accnum是類型的數字然後嘗試

    $result = mysqli_query($con,"SELECT * FROM useraccounts WHERE (username='$thisuser' or accnum=$thisuser or email='$thisuser')"); 
    
    +0

    它是數字,我已經嘗試過你的代碼,但仍然沒有喜悅 –

    +0

    你有沒有嘗試過在MySQL上執行相同的查詢?如果你已經嘗試過,你可以在這裏分享一些代碼,並確保$ thisuser不是空的 – AnonymousCoder

    +0

    是啊$這個用戶有一個值,我在我原來的帖子中提到過 - 但是我已經把我的accnum變成了一個CHAR現在一切都好了 –

    0

    似乎沒有問題。請檢查'$ thisuser'是否有價值。嘗試打印sql語句。 您可以嘗試直接在數據庫上運行查詢。

    0

    我也覺得首先檢查$thisuser的值,然後嘗試下面的查詢

    $result = mysqli_query($con,"SELECT * FROM useraccounts WHERE (username='".$thisuser."' or accnum='".$thisuser."' or email='".$thisuser."')"); 
    
    0

    Rathere然後在服務器端使用,如果它在js文件的客戶端完成通過檢查它的EMAILID或者根據該用戶名oraccount號數u可以通過值

    +0

    客戶端如何在沒有首先訪問數據庫的情況下進行檢查來進行比較? –

    相關問題