我使用 jQgrid 中的 Position 表作为我的主要数据源。
Department
id | department
1 | field
2 | IT
3 | Marketing
Position
id | position | department
5 | interviewee | 1
9 | advertiser | 3
8 | developer | 2
当我搜索 ID & Position 时,我得到了结果,但是当我搜索部门时,除非我使用 ids (1, 2, 3),否则它将不起作用
我已经尝试实施 if 语句,其中搜索 ID、职位和部门有不同的查询。
我的问题是如果我使用更多列,那么我将不得不为我使用的每个数据库表创建查询。
有没有替代方案?
编辑:
这是我当前的查询。
SELECT p.id AS id, p.position AS position, d.department AS department FROM position p LEFT JOIN department d ON p.department = d.id " . $where ." ORDER BY $sidx $sord LIMIT $start , $limit
$where
变量是通过...
function getWhereClause($col, $oper, $val){
global $ops;
if($oper == 'bw' || $oper == 'bn') $val .= '%';
if($oper == 'ew' || $oper == 'en' ) $val = '%'.$val;
if($oper == 'cn' || $oper == 'nc' || $oper == 'in' || $oper == 'ni') $val = '%'.$val.'%';
return " WHERE p.$col {$ops[$oper]} '$val' ";
}
...请注意,我必须添加 p。到 $col 以使搜索功能正常工作。
我试过这个
if($col == 'Department'){
return " WHERE d.$col {$ops[$oper]} '$val' ";
}
else{
return " WHERE p.$col {$ops[$oper]} '$val' ";
}
但由于某种原因if($col == 'Department')
没有被识别并跳到 else 语句。