php
  • mysql
  • 2014-02-27 51 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

    客户端如何在没有首先访问数据库的情况下进行检查来进行比较? –

    相关问题