lvhao 19 часов назад
Родитель
Сommit
236883af37
1 измененных файлов с 21 добавлено и 0 удалено
  1. 21 0
      core/CoreApp/controllers/Fullorderexcel.php

+ 21 - 0
core/CoreApp/controllers/Fullorderexcel.php

@@ -2013,6 +2013,27 @@ class Fullorderexcel extends Start_Controller {
 	public function _datahz($where,$field,$order_str,$sj,$extra){
 	public function _datahz($where,$field,$order_str,$sj,$extra){
 		 $goods_sku_list = $extra['goods_sku_list'] ;
 		 $goods_sku_list = $extra['goods_sku_list'] ;
 		 $typeclass = $extra['typeclass'];
 		 $typeclass = $extra['typeclass'];
+		 //过滤掉表中不存在的字段,防止SQL报错
+		 if($field != '*' && !empty($field)){
+			 $table_fields = $this->$sj->fields;
+			 if(!empty($table_fields)){
+				 $field_arr = explode(',', $field);
+				 $field_arr = array_map('trim', $field_arr);
+				 $valid_fields = array();
+				 foreach($field_arr as $f){
+					 //处理字段别名的情况,如 "field AS alias"
+					 $real_field = trim(stristr($f, ' AS ', true) ?: $f);
+					 //去掉表前缀,如 "table.field"
+					 if(strpos($real_field, '.') !== false){
+						 $real_field = trim(substr(strrchr($real_field, '.'), 1));
+					 }
+					 if(in_array($real_field, $table_fields)){
+						 $valid_fields[] = $f;
+					 }
+				 }
+				 $field = !empty($valid_fields) ? implode(',', $valid_fields) : '*';
+			 }
+		 }
 		 //取得信息列表
 		 //取得信息列表
 		 $info_list = $this->$sj->find_all($where,$field,$order_str);
 		 $info_list = $this->$sj->find_all($where,$field,$order_str);
 		 //格式化数据
 		 //格式化数据