$_v) { $condition_searching .= " AND "; $condition_searching .= "`key` = :key"; $params_searching[':key'] = $_k; $condition_searching .= " AND "; if (is_array($_v)) { $x_condition = "("; $x_i = count($_v); foreach ($_v as $xk => $xv) { $x_i--; $x_condition .= "'" . serialize($xv) . "'"; if ($x_i > 0) { $x_condition .= ","; } } $x_condition .= ")"; $condition_searching .= "`value` IN " . $x_condition; } else { $condition_searching .= "`value` LIKE :value"; $params_searching[':value'] = '%' . serialize($_v) . '%'; } } } //客户侧传入的额外搜索条件(模糊可选匹配) if (isset($data['searching']['addons'])) { foreach ($data['searching']['addons'] as $_k => $_v) { $condition_searching .= " AND "; $condition_searching .= "`key` = :key"; $params_searching[':key'] = $_k; $condition_searching .= " AND "; $condition_searching .= "`value` LIKE :value"; $params_searching[':value'] = '%' . serialize($_v) . '%'; $temp_tableName = $tablePre . '_' . $table . '_param'; $result = fmFunc_pdo_yii_getall($connection, $temp_tableName, array('s_sn'), $condition_searching, $params_searching, $limits = array(), $orders = array()); if ($result) { foreach ($result as $_kk => $_vv) { if ($_vv['s_sn'] != $s_sn) { $searching[] = $_vv['s_sn']; } } } } } else { $temp_tableName = $tablePre . '_' . $table . '_param'; $result = fmFunc_pdo_yii_getall($connection, $temp_tableName, array('s_sn'), $condition_searching, $params_searching, $limits = array(), $orders = array()); if ($result) { foreach ($result as $_kk => $_vv) { if ($_vv['s_sn'] != $s_sn && !in_array($_vv['s_sn'], $searching)) { $searching[] = $_vv['s_sn']; } } } } } $searching = array_unique($searching); $issearching = (count($searching) == 0) ? FALSE : TRUE; //传入了s_sn时,也作为搜索条件 if ($s_sn > 0) { $condition .= " AND "; $condition .= "`s_sn` = :s_sn"; $params[':s_sn'] = $s_sn; } else if ($issearching) { $s_sns = ''; foreach ($searching as $temp_s_sn) { $s_sns .= $temp_s_sn . ","; } $s_sns .= $s_sns; $condition .= " AND "; $condition .= "`s_sn` IN (" . $s_sns . ")"; } if ($issearching) { $op = ''; } switch ($op) { case 'index': //取未删除、可用状态的数据 $condition .= " AND "; $condition .= "`status` = :status"; $params[':status'] = 1; $condition .= " AND "; $condition .= "`deleted` = :deleted"; $params[':deleted'] = 0; break; case 'unused': //取未删除、不可用状态的数据 $condition .= " AND "; $condition .= "`status` = :status"; $params[':status'] = 0; $condition .= " AND "; $condition .= "`deleted` = :deleted"; $params[':deleted'] = 0; break; case 'deleted': //取已删除数据 $condition .= " AND "; $condition .= "`deleted` = :deleted"; $params[':deleted'] = 1; break; case 'all': //取未删除数据 $condition .= " AND "; $condition .= "`deleted` = :deleted"; $params[':deleted'] = 0; break; default: $condition .= " AND "; $condition .= "`deleted` = :deleted"; $params[':deleted'] = 0; if (isset($data['searching']['status'])) { $condition .= " AND "; $condition .= "`status` = :status"; $params[':status'] = $data['searching']['status']; } break; } //补充搜索条件 if (isset($data['searching']['keyword'])) { $condition .= " AND "; $condition .= "`title` LIKE :keyword"; $params[':keyword'] = '%' . $data['searching']['keyword'] . '%'; } //数据分页 $limits = !empty($data['sqls']['limits']) ? $data['sqls']['limits'] : array(); //数据排序 $orders = !empty($data['sqls']['orders']) ? $data['sqls']['orders'] : array(); $result = fmFunc_pdo_yii_getall($connection, $tableName, $columns, $condition, $params, $limits, $orders = array()); if (!$result) { $errorCode = 45300305; } $total = FmFunc_pdo_yii_getall($connection, $tableName, $columns = array('sn'), $condition, $params, $limits = array(), $orders = array()); $count = count($total);