このクエリの連結に問題があります:
$sql.=' WHERE ticket.dept_id IN('.implode(',',$thisuser->getDepts()).') OR ticket.staff_id='.db_input($thisuser->getId());
これとともに:
AND ticket.brand_id IN('.implode(',',$thisuser->getBrands())
どうすればこれを達成できますか?
このクエリの連結に問題があります:
$sql.=' WHERE ticket.dept_id IN('.implode(',',$thisuser->getDepts()).') OR ticket.staff_id='.db_input($thisuser->getId());
これとともに:
AND ticket.brand_id IN('.implode(',',$thisuser->getBrands())
どうすればこれを達成できますか?
同じ行の文字列を次のように連結できます。
$sql.=' WHERE ticket.dept_id IN('.implode(',',$thisuser->getDepts()).') OR ticket.staff_id='.db_input($thisuser->getId()) . ' AND ticket.brand_id IN('.implode(',',$thisuser->getBrands()) . ')';
または、2行目でそれを行うことができます:
$sql.=' WHERE ticket.dept_id IN('.implode(',',$thisuser->getDepts()).') OR ticket.staff_id='.db_input($thisuser->getId());
$sql.=' AND ticket.brand_id IN('.implode(',',$thisuser->getBrands()) . ')';
ただし、元のWHERE
句にはが含まれてOR
いるため、ロジックをそのまま維持する必要があります。AND
追加の句を連結する前に、最初の2つの条件を1組の括弧で囲むことをお勧めします。
$sql.=' WHERE (ticket.dept_id IN('.implode(',',$thisuser->getDepts()).') OR ticket.staff_id='.db_input($thisuser->getId()) . ')';
$sql.=' AND ticket.brand_id IN('.implode(',',$thisuser->getBrands()) . ')';