$_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; }elseif($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);