查询类方法代码分析

简介: public static function getbak($type,$fromTime,$endTime,$pageno=1,$pagesize){ if($pageno$v) { $day = $v["day"];//对应二维数组,重新建立索引---时间字段 $data1[...

public static function getbak($type,$fromTime,$endTime,$pageno=1,$pagesize){
   if($pageno<1) $pageno = 1 ;//翻页函数:
  
  if($type){
   
   global $lang;
  $type = intval($type); //$type是int格式,intval防止数字溢出,假如$type是字符串(包含汉字)使用trim()删除空白符
  if(!$type) exit("$lang[plz_select_type]");
  
  if($fromTime) $fromTime = str_replace("-",'' ,substr($fromTime,0,10));把2011-01-01 14:38:59 转化成20100101格式
  else $fromTime='20080101';
  if($endTime) $endTime = str_replace("-",'' ,substr($endTime,0,10));
  else $endTime=date("Ymd",time());//条件判断输出的if(expr)else。。多个输出if(expr){。。。}else{。。。}
----------------*******************
  if($fromTime and $endTime) {
   $sqladd = " and  `day` >= '$fromTime' and `day` <= '$endTime' ";
  }elseif($fromTime){
   $sqladd = " and  `day` >= '$fromTime' ";
  }elseif($endTime){
   $sqladd = " and  `day` =< '$endTime' ";
  }
  if($uid){
   $sqladd = " and  `uid` = '$uid' ";
  }
  --------------------**************
  上面那段判读又等于下面这段:$sql后面条件的书写,认真体会:(and前面要有空格,$addsql.后面的连接符不要忘,'$fromTime'条件值一定要加单引号)
      $addsql.="where 1=1";
   ($fromTime&&$endTime)&&$addsql.=" and  `day` >= '$fromTime' and `day` <= '$endTime'";
   
   $uid&&$addsql.="and uid='$uid'";
---------------------*************************
  $sql = "select * from ".self::$_table . " where `type` = '$type'  $sqladd limit ". ($pageno-1)*$pagesize .",$pagesize" ;//翻页变量
// return $sql;打印出来
  $data = parent::get_all($sql);取出全部数据,下面把$data强制转换为array格式
  foreach((array)$data as $k=>$v) {
   $day = $v["day"];//对应二维数组,重新建立索引---时间字段
   $data1[$day]["day"] = $day;
   
   $soldierinfo='';//写把$soliderinfo写入内存,在读进数据,可以提高写入内存效率
   $soldierinfo = unserialize($v["soldierinfo"]);//反序列化,=》转化成数组,serialize序列化把数组转化成数据库可存储格式
   if(is_array($soldierinfo))//判断是否是数组,is_integer是否是整数,!empty()判断变量是否为空,isset()判断变量是否设置
   {
    foreach($soldierinfo as $k2=>$v){
     $data1[$day]["soldierinfo"][$k2] += $soldierinfo[$k2];//求各个字段的值,采用了foreach循环,而不是逐个列出,方便以后即时加字段也不需修改代码
     $data1[$day]["all"] += $v;//求各个字段的总和,使用了+=符号,自动累加
    }
   }
  }
  return $data1;
   
  }
  
  
 }
 **********——————————————————————
 对应sql语句的另外一种执行方式
     $res=mysql_query($sql);
   if(mysql_num_rows($res)<1)//判断取出数据是否存在
   return false;
   while($row=mysql_fetch_array($res)){
      $time=$row['day'];
       $return[$time]['type']=$row['type'];
       $return[$time]['day']=$row['day'];
       
      $soldierinfo='';
       $soldierinfo = unserialize($row["soldierinfo"]);
       
       if(is_array($soldierinfo)){
        foreach($soldierinfo as $k=>$v){
         $return[$time]['soldierinfo'][$k]=$soldierinfo[$k];
         $return[$time]['all']+=$v;
        }
       }
   }
   return $return;
  }
=======================
$soldierinfo打印出结果:
(Object)#0
  1 = 392276
  2 = 128176
  3 = 921
  4 = 271652
  5 = 33948
  6 = 0
  7 = 0

目录
相关文章
|
2月前
|
测试技术 数据处理 数据格式
Python中动态类和动态方法的创建与调用
【8月更文挑战第5天】在Python中,`type`函数可用于创建动态类,结合`types.MethodType`可创建动态方法。例如,定义`dynamic_method`后,可通过`type`创建包含该方法的`DynamicClass`。同样,对于已存在的类实例,可通过`types.MethodType`绑定新方法。这种动态特性适用于自动化测试框架或数据处理应用等场景,实现根据需求动态生成类及方法以执行特定逻辑。
|
4月前
|
安全 算法 测试技术
静态代码分析的这些好处,我竟然都不知道?
软件开发中,单元测试确保模块功能,但静态代码分析是质量保证的关键。静态分析检查代码结构,发现潜在错误,补充单元测试的不足。虽然静态分析工具不能替代人工验证,它们在识别复杂逻辑错误和提升代码质量方面至关重要。结合单元测试和静态分析能提高代码安全性与整体质量,减少后期问题,降低成本。SonarQube等工具简化了静态分析过程,强调早期错误检测的重要性。
|
Java
6.2 使用局部内部类优化代码:适用场景及注意事项
6.2 使用局部内部类优化代码:适用场景及注意事项
88 0
|
安全 搜索推荐 Java
6.1 使用局部内部类优化代码:局部内部类的定义与用法
6.1 使用局部内部类优化代码:局部内部类的定义与用法
89 0
|
Scala 开发者
覆写字段注意事项和细节说明2|学习笔记
快速学习覆写字段注意事项和细节说明2。
覆写字段注意事项和细节说明2|学习笔记
|
Java
Java内部类大全(含代码例子)
写在一个类里面的类就叫内部类
91 0
|
Java 程序员 编译器
覆写字段注意事项和细节说明1|学习笔记
快速学习覆写字段注意事项和细节说明1。
101 0
|
自然语言处理
【Lua篇】静态代码扫描分析(二)词法分析
词法分析(英语:lexical analysis)是计算机科学中将字符序列转换为单词(Token)序列的过程。进行词法分析的程序或者函数叫作词法分析器(Lexical analyzer,简称Lexer),也叫扫描器(Scanner)。词法分析器一般以函数的形式存在,供语法分析器调用。
368 0
【Lua篇】静态代码扫描分析(二)词法分析
|
Python
python方法的分类(实例方法、类方法、静态方法)
很多童鞋会比较疑惑,方法和函数有什么区别,都是通过def去定义的啊? 只需要记住一点,方法是用来描述一个目标的行为动作! 不论你是直接通过 类名.方法调用,还是通过由类生成的实例.方法调用。 方法都需要有一个目标才能完成调用的操作。
145 0
【Groovy】MOP 元对象协议与元编程 ( Groovy 类内部和外部分别获取 metaClass | 分析获取 metaClass 操作的字节码 | HandleMetaClass 注入方法 )
【Groovy】MOP 元对象协议与元编程 ( Groovy 类内部和外部分别获取 metaClass | 分析获取 metaClass 操作的字节码 | HandleMetaClass 注入方法 )
185 0