我正在尝试创建一个微调器,该微调器将从数据库中下载数据并分配用户角色。我创建了两个表:users
和roles
。在用户表中,我有一列"roles_idroles"
,并且想要使用微调器添加角色,但不希望在id之后,而是要在"roles"
表中的角色名称之后添加角色。>
如何从另一个表下载角色?
public function createUser($First_Name, $Last_Name, $Email, $password, $roles_idroles){
if(!$this->isEmailExist($Email)){
$stmt = $this->con->prepare("INSERT INTO users (First_Name,Last_Name, Email, password, roles_idroles) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("sssss", $First_Name, $Last_Name, $Email, $password, $roles_idroles );
if($stmt->execute()){
return USER_CREATED;
}else{
return USER_FAILURE;
}
}
return USER_EXISTS;
}
我需要在android中创建它的帮助。
我想在按下微调器后显示可用的用户角色,选择之后我可以在注册时将此角色分配给用户。
答案 0 :(得分:0)
我认为您的桌子上有类似的东西:
users
-----------------------------------------------------------------------
| user_id | First_Name | Last_Name | Email | password | roles_idroles |
-----------------------------------------------------------------------
roles
----------------------------
| roles_idroles | role_name |
----------------------------
您可以分3步进行操作 1°获取用户信息 2°获取与该用户相关联的role_idroles 3°通过他的ID获取该角色的role_name。
放手!
$role_name="";
$role_id=0;
if($result != USER_FAILURE){
$stmt = $this->con->prepare("SELECT 'roles_idroles' FROM users WHERE Email='?'");
$stmt->bind_param("s",$Email);
$stmt->execute();
$stmt->bind_result($user_role);
while($stmt->fetch()){
$role_id= $user_role;
}
$stmt = $this->con->prepare("SELECT 'role_name' FROM roles WHERE 'roles_idroles'='?'");
$stmt->bind_param("s",$role_id);
$stmt->execute();
$stmt->bind_result($name);
while($stmt->fetch()){
$role_name= $name;
}
}else{
//something
}
echo "My Role is $role_name";
此外,您可以使用“ JOIN”合并两个表并直接获取role_name来更快地执行操作。 Here a example