PHP - 将数组值传递给 mysql 查询并获取结果
PHP - Pass array values to mysql query and fetch the result
$dataSet = Array (
[0] => Array ( [quantity] => 22 [sr_no] => 71 [batch_id] =>5 [inq_id] => 91 )
[1] => Array ( [quantity] => 35 [sr_no] => 72 [batch_id] => [inq_id] => 92 )
[2] => Array ( [quantity] => 20 [sr_no] => 69 [batch_id] => [inq_id] => 90 )
[3] => Array ( [quantity] => 45 [sr_no] => 75 [batch_id] => 6 [inq_id] => 94 )
[4] => Array ( [quantity] => 15 [sr_no] => 70 [batch_id] => 6 [inq_id] => 90 )
)
我有上面的数组,我需要从中获取每个 sr_no、batch_id 并且需要检查组合是否存在(例如,第一行 sr_no = > 71 & batch_id => 5) 在 table ( part_list ) 中。我试过下面的代码,但它正在获取所有内容。如果还有更好的方法也准备实施。
$keyedExistingPartRows = array_column(
$this->db
->where_in('batch_id', array_column($dataSet, 'batch_id'))
->where_in('sr_no', array_column($dataSet, 'sr_no'))
->get('part_list')
->result_array(),
null,
'sr_no'
);
提前致谢。
据我了解,您想同时检查 sr_no
和 batch_id
。
如果您愿意使用原始 SQL 查询,您可以先连接两列,然后为该连接的列提供数组并找到所需的结果。
请试试这个
$temp_Arr = [];
foreach($dataSet as $val){
$temp_Arr[] = $val['sr_no']."-".$val['batch_id'];
}
$sr_no_and_batch_id = "('".implode("', '", $temp_Arr)."')";
//echo $sr_no_and_batch_id;
$sql="SELECT * FROM `part_list` WHERE CONCAT(sr_no, '-', batch_id) IN $sr_no_and_batch_id";
$query = $this->db->query($SQL);
return $query->result_array();
$dataSet = Array (
[0] => Array ( [quantity] => 22 [sr_no] => 71 [batch_id] =>5 [inq_id] => 91 )
[1] => Array ( [quantity] => 35 [sr_no] => 72 [batch_id] => [inq_id] => 92 )
[2] => Array ( [quantity] => 20 [sr_no] => 69 [batch_id] => [inq_id] => 90 )
[3] => Array ( [quantity] => 45 [sr_no] => 75 [batch_id] => 6 [inq_id] => 94 )
[4] => Array ( [quantity] => 15 [sr_no] => 70 [batch_id] => 6 [inq_id] => 90 )
)
我有上面的数组,我需要从中获取每个 sr_no、batch_id 并且需要检查组合是否存在(例如,第一行 sr_no = > 71 & batch_id => 5) 在 table ( part_list ) 中。我试过下面的代码,但它正在获取所有内容。如果还有更好的方法也准备实施。
$keyedExistingPartRows = array_column(
$this->db
->where_in('batch_id', array_column($dataSet, 'batch_id'))
->where_in('sr_no', array_column($dataSet, 'sr_no'))
->get('part_list')
->result_array(),
null,
'sr_no'
);
提前致谢。
据我了解,您想同时检查 sr_no
和 batch_id
。
如果您愿意使用原始 SQL 查询,您可以先连接两列,然后为该连接的列提供数组并找到所需的结果。
请试试这个
$temp_Arr = [];
foreach($dataSet as $val){
$temp_Arr[] = $val['sr_no']."-".$val['batch_id'];
}
$sr_no_and_batch_id = "('".implode("', '", $temp_Arr)."')";
//echo $sr_no_and_batch_id;
$sql="SELECT * FROM `part_list` WHERE CONCAT(sr_no, '-', batch_id) IN $sr_no_and_batch_id";
$query = $this->db->query($SQL);
return $query->result_array();