PHP中的连接Mysql查询

PHP中的连接Mysql查询,php,mysql,concatenation,Php,Mysql,Concatenation,连接此查询时遇到问题: $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.='

连接此查询时遇到问题:

$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());
$sql.=' AND ticket.brand_id IN('.implode(',',$thisuser->getBrands()) . ')';
但是,由于原始的
WHERE
子句包含
,因此必须确保保持逻辑完整。我建议在连接附加的
子句之前,将前两个条件用一组括号括起来:

$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()) . ')';

$sql.='AND ticket.brand_id IN('.introde('',',$thisuser->getBrands())')