如何使用php中的sql查询结果作为另一个php函数/查询的参数

时间:2018-07-31 22:14:39

标签: php mysql sql

我已将用户分配到特定部门。当他们查看同一页面(/管理)时,我希望他们根据查看用户的部门获得不同的票证以显示。

为此,我设置了一个变量以获取查看用户的ID(与数据库相对应),然后设置另一个变量以将该值传递给我创建的名为get_department_by_user的新SQL函数的参数:

static function get_department_by_user($userid){
    $dp = SupportCenterDB::table_department();
    $dpu = SupportCenterDB::table_department_user();
    $d=OW::getDbo();
    return $d->query("
    SELECT {$dpu}.department_id FROM {$dpu} 
    JOIN {$dp} ON {$dpu}.department_id = {$dp}.id
    WHERE user_id ='".$d->escapeString($userid)."'
    ;");
}

这是脚本中的变量:

$id = SupportCenterDB::get_department_by_user(OW::getUser()->getId());
...
$ticket_q = SupportCenterDB::ticket_list_manage($id);

当我检查数据库查询以加载页面时,第一个SQL函数将正常工作。它正在根据用户的ID来获取要使用的部门类型(将用户分配给部门时,他们通过其ID分配给特定的department_id)。

我遇到麻烦的步骤是下一个SQL函数。我想从票证表中获取数据,其中票证的department_id =早期SQL函数设置的部门ID。

static function ticket_list_manage(){
    $table_ticket = SupportCenterDB::table_ticket();
    $d=OW::getDbo();
    $dp = SupportCenterDB::table_department();

    return $d->queryForList("SELECT {$table_ticket}.id, category_id, subject, 
            requested_deletion, {$dp}.text, department_id, updated, status FROM {$table_ticket}
            JOIN {$dp} ON {$dp}.id = {$table_ticket}.department_id
            WHERE {$table_ticket}.department_id='{$id}'
            ORDER BY updated DESC;");
}

现在,这什么也不返回。当我对其进行更改并添加参数时,它只是从部门1(标识1)返回票证,但用户应该只能看到部门2(标识2)。我尝试过更改它,但是没有结果。当我检查SQL进程时,ticket_list_manage函数显示{$table_ticket}.department_id = ''意味着(至少我认为)没有参数,需要传递一个参数。

我的问题:如何从第一个函数(get_department_by_user)中获取结果并将其作为table_list_manage()的参数传递?

编辑:从有问题的第二个函数中删除了$ userid,它除了get_department_by_user函数外没有任何作用

例如,当我在ticket_list_manage()查询中更改department_id ='2'时,将获得该部门的故障单。当我是适当的用户时,运行针对get_department_by_user的查询时,我也会得到department_id ='2'。我只需要知道如何将该结果传递给其他查询即可。

0 个答案:

没有答案