如何将3个表与一个公共字段连接起来
-
table1:c_id,用户名,密码,c_role
-
table2:p_id,用户名,密码,c_role
-
table3:s_id,用户名,密码,c_role
在这个 c_role 字段在这里我很常见
-
enum '1' for table1中的c_role
-
enum '2' for table2中的c_role
-
enum '3' for table3中的c_role
为他们登录时为3个不同的用户(例如corres,校长和工作人员)提供权利 . 现在当他们登录时,应该识别用户并将他们带到他们的页面 .
3 回答
You should have one table that contains the following columns:
id(唯一,主要),用户名,密码,角色(INT,将根据用户为主,工作人员或相关人员分配1-3)
另外
如果你想这样设置,你可以有另一个名为roles的表:
id(唯一的,主要的), Headers ( Headers 的选项是委托人,职员或者对应的)
当用户登录时只需执行类似操作
我不确定,但我相信这也会有效 . 试试这个查询 .
假设用户只位于这三个表中的一个表中,那么它应该与用户名和密码匹配,并找出用户来自哪个表 . 然后你可以通过使用来拉出角色
如果用户名/密码组合不正确,则$ role将为空,或者您可以获取行数[使用$ iscorrectuser = mysql_num_rows($ query)],其中存在匹配且行数为0.您可以重定向尝试使用“不成功登录”错误消息登录的用户 .
唯一的连接是用户名(和密码?),除非c_id,p_id和s_id都是相同的ID?
你不能加入角色看见,因为它们在每个表中是不同的,除了完全愚蠢的角色=表1中的1 =表2中的role = 2 .
你是说工会吗?如你所愿
不确定你想要用这个模式实现什么,但是它在书中的每个规则附近打破了,似乎不符合你的需求....
根据您的评论,您可能会看到一种方式 .
是
你需要学习一些关于数据库特别是规范化的知识,前三种形式应该对大多数事情都有用 .
然后
等等变得可能和有效 .
会话和包含功能给出:
从表单发送的用户名和密码:
保护MySQL注入:
Mysql_num_row正在计算表行:
如果结果与$ T_UserName和$ T_Password匹配,则表行必须为1行:
注册$ T_UserName,$ T_Password并重定向到文件“correspindex.php”:
重定向到错误页面或显示错误消息然后: