我有一张桌子叫Users
。此表包含参数:userID
,userName
,functionID
,supervisorID
,firstName
,lastName
,email
和functionID
。
当我将用户加载到用EXT JS创建的应用程序中时,我在PHP中使用以下查询:
public function getEmployees(stdClass $params)
{
global $DBH;
$STH = $DBH->query(
"SELECT u.id, u.userName AS 'userName', f.functionName, us.userName AS 'supervisorName', u.firstName, u.lastName, u.email
FROM users AS u
INNER JOIN functions AS f ON u.functionID=f.id
LEFT JOIN users AS us ON u.supervisorID=us.id
ORDER BY u.id");
return $STH->fetchAll(PDO::FETCH_ASSOC);
}
所以我不是通过
supervisorID
和functionName
而是通过supervisorName
和userName
。我的应用程序上的网格显示
functionName
,supervisorName
(非ID),firstName
(非ID),userName
,。。。现在,我在如何创建新用户以及如何更新用户(如果我的应用程序通过了
functionName
,functionID
(因此需要转换为supervisorName
),supervisorID
(需要转换为firstName
),functionID
,。。。我试过无数次的询问,但似乎想不出来。
有人能帮我一下吗?
提前谢谢!
评论后更新:
我应该提到我的网站是用Sencha的EXT JS构建的。
只有管理员才能编辑或创建新用户。
创建/编辑在EXT网格中完成,JSON数据通过EXT.Direct传递给PHP。
因此,我需要一种方法来获取与应用程序传递的
supervisorID
和functionName
相关联的supervisorID
和。 最佳答案
我想您的表单有组合框(<select>
)或类似的控件(单选按钮集,列表)来选择函数和管理器。使select
的值成为ID,而不是名称:
<select name="function">
<option value="1">Boss</option>
<option value="2">Stableman</option>
<option value="3">Servant</option>
<option value="4">Shepherd</option>
</select>
那么你不需要做任何映射。