我如何选择要在php中显示名称的登录用户,表1是主要用户,表2是额外用户,通过ID和ID_ppl与主要用户相关联
我需要在php中显示登录的用户名。但只有它可以向我显示主要用户,尽管我以其他用户身份登录,并且必须显示名称为其他用户。
例如,我使用 Juana 登录,并在php中显示了主要用户 Andres ;什么时候必须告诉我胡安娜的名字
表1主要用户
id | usuario | password | token | nivel | estado |
----------------------------------------------------
1 | Andres | ***** | e12A1 | 1 | on |
----------------------------------------------------
表2额外的用户
id | usuario | password | token | id_ppl | nivel | estado |
-------------------------------------------------------------
1 | Juana | ***** | | 1 | 2 | on |
-------------------------------------------------------------
2 | Martin | ***** | | 1 | 2 | off |
-------------------------------------------------------------
Php查询
$stmt = $conn->prepare("SELECT T1.id, T1.usuario, T1.token, T1.nivel, T1.estado FROM escolar AS T1 LEFT OUTER JOIN users_extra AS T2 ON T1.id = T2.id_ppl");
$stmt->bind_param("ss",$usuario, $password);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows > 0){
$stmt->bind_result($id, $usuario, $token, $nivel, $estado);
$stmt->fetch();
$user = array(
'id' => $id,
'usuario' => $usuario,
'token' => $token,
'nivel' => $nivel,
'estado' => $estado
);
答案 0 :(得分:2)
您仅从T1中进行选择。您需要包括T2中的用户。
SELECT T1.*, T2.usuario AS extrausers
FROM escolar AS T1
LEFT OUTER JOIN users_extra AS T2 ON T1.id = T2.id_ppl
此外,由于T1中的每个用户在T2中有多个额外用户,因此您的结果将获得多行(每个额外用户一行)。您可能要在您的php中解决这个问题。
答案 1 :(得分:0)
尝试一下
SELECT T1.id, T2.usuario, T1.usuario, T1.token, T1.nivel, T1.estado FROM escolar AS T1 LEFT OUTER JOIN users_extra AS T2 ON T1.id = T2.id_ppl;
您没有从T2中选择任何列
谢谢;)