我有一张桌子叫Users。此表包含参数:userIDuserNamefunctionIDsupervisorIDfirstNamelastNameemailfunctionID
当我将用户加载到用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);
}

所以我不是通过supervisorIDfunctionName而是通过supervisorNameuserName
我的应用程序上的网格显示functionNamesupervisorName(非ID),firstName(非ID),userName,。。。
现在,我在如何创建新用户以及如何更新用户(如果我的应用程序通过了functionNamefunctionID(因此需要转换为supervisorName),supervisorID(需要转换为firstName),functionID,。。。
我试过无数次的询问,但似乎想不出来。
有人能帮我一下吗?
提前谢谢!
评论后更新:
我应该提到我的网站是用Sencha的EXT JS构建的。
只有管理员才能编辑或创建新用户。
创建/编辑在EXT网格中完成,JSON数据通过EXT.Direct传递给PHP。
因此,我需要一种方法来获取与应用程序传递的supervisorIDfunctionName相关联的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>

那么你不需要做任何映射。

09-26 07:27