首页 > 解决方案 > 数据表 - 我如何使用数组作为 SQL where 子句

问题描述

我正在尝试制作一个根据用户设置动态加载数据的数据表。

在服务器处理脚本上

我有当前用户拥有的一系列分支机构。

$branchesOwned = $db->query('SELECT branchId FROM zapp_clt_branchesowner WHERE ownerId = ?', $ownerId)->fetchAll();

到目前为止,一切都很好!

我试图创建一个辅助数组,我将在其中存储第一个数组中的 branchId:

$whereArray = [];

foreach ($branchesOwned as $result) {
array_push($whereArray, $result['branchId']);
}

现在在 SSP 综合体上,我有这个:

//$whereAll = "status = 'B Activo' AND branchID IN ('1')"; <--- WORKING
$whereAll = "status = 'B Activo' AND branchID IN {$whereArray}"; // <--- NOT WORKING


echo json_encode(
SSP::complex( $_GET, $sql_details, $table, $primaryKey, $columns, $whereResult = null, $whereAll)
);

如您所见,它是否直接将数组写入 $whereAll 它可以工作

标签: phpdatabase

解决方案


你可以这样做:

$idsAsString = sprintf("('%s')", implode("', '", $whereArray));

$whereAll = "status = 'B Activo' AND branchID IN $idsAsString"; 

推荐阅读