Как создать счетчики, которые будут загружать данные из MySQL? - PullRequest
0 голосов
/ 05 января 2019

Я пытаюсь создать спиннер, который будет загружать данные из базы данных и назначать роли пользователей. Я создал две таблицы: users и roles. В таблице пользователей у меня есть столбец "roles_idroles", и я хочу добавить роль с помощью счетчика, но не после идентификатора, а после имени роли в таблице "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 голосов
/ 05 января 2019

Я предполагаю, что в вашей таблице у вас есть что-то вроде этого:

users
-----------------------------------------------------------------------
| user_id | First_Name | Last_Name | Email | password | roles_idroles |
-----------------------------------------------------------------------

roles
----------------------------
| roles_idroles | role_name |
----------------------------

вы можете сделать это в 3 шага 1 ° получить информацию о пользователе 2 ° получить Роли _idroles связать с этим пользователем 3 ° получите имя роли этой роли по его идентификатору.

Пойдем !!

$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', чтобы объединить обе таблицы и получить имя роли напрямую. Вот пример

...