如何创建一个可以从mysql下载数据的微调器?

时间:2019-01-05 11:22:30

标签: java php android retrofit slim

我正在尝试创建一个微调器,该微调器将从数据库中下载数据并分配用户角色。我创建了两个表:usersroles。在用户表中,我有一列"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中创建它的帮助。

我想在按下微调器后显示可用的用户角色,选择之后我可以在注册时将此角色分配给用户。

1 个答案:

答案 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