2014-01-06 113 views
1

我已经搜索了很长一段时间关于有两个表(一个用户名和一个密码)但没有发现任何有用的可能性。用不同表格登录系统用户名和密码,如何选择?

我有两个表与PK和FK连接在一起。一个包含用户名,另一个包含密码。

我当前的代码是只为一个表,像这样:

$result = mysqli_query($con, "SELECT membersid FROM members 
    WHERE user='{$_POST['user']}' 
    AND pass='{$_POST['passwd']}'"); 

反正我有可以像使用相等的输入连接在一起,在我的形式?

我得到的是这样的:

$result = mysqli_query($con, "SELECT adminuser.userid, adminpass.passid 
    FROM adminuser, adminpass 
    WHERE username='{$_POST['user']}' 
    AND password='{$_POST['passwd']}'"); 

我知道这可能是完全错误的,我搜索了一个答案,但还没有找到一个,那就是为什么我转向这里寻求帮助。

有无论如何解决我的问题?

+1

请问我为什么要这么做。为什么两个表的用户和通行证? –

+1

哪里是两个表之间的映射? –

+1

您需要在结尾添加另一个条件'和adminuser.userid = adminpass.userid'。 –

回答

2

我不确定,但这是我的0.02美分。你错过了这个。

ON adminuser.userid=adminpass.userid; 

enter image description here

或者,也许,这是比较容易理解的。

INNER JOIN用于根据它们之间的公共字段组合来自两个或多个表的行。

SELECT adminuser.userid, adminpass.passid 
FROM adminuser 
INNER JOIN adminpass 
ON adminuser.userid=adminpass.userid; 
+0

它不工作,但恐怕它可能是正确的,但我的问题是我的代码中使用fetch_assoc等能够使用头(位置:secretpage.php)的部分。我现在看到了你的编辑,但$ _POST应该在哪里? – Bondenn

+0

我刚刚给你一个关于如何处理内部联接的大概想法。我可能会编辑我的答案以合并您的发布数据。另外,如果还有其他缺陷,我邀请其他人进一步编辑它。 :) –

+1

好吧,我明白了,我会尝试找出内部联接,然后感谢您的帮助! – Bondenn

相关问题