php+msql 数据组合并保存到数据库中

来源:互联网 发布:top域名是哪个国家的 编辑:程序博客网 时间:2024/06/11 14:36

本次是以数据接口实现。接口数据如json数据$html
目标:将一个小时中的数据合为一条

  1. 列表内容

1.数据库
这里写图片描述

<?phpnamespace Home\Controller;use Home\Controller\CommonController;class KeyController extends CommonController{    public $model_name = "Key";    public $model_user = "apiuser";    /*     * 执行实时数据     */    public function index(){        //测试数据        $html = '[{ "ID":0,"inputdate":"2017-9-8 0:00:00","setid":"SL001","key":"风速","value":"0.8m/s"},{ "ID":0,"inputdate":"2017-9-8 0:00:00","setid":"SL001","key":"风向","value":"93"},{ "ID":0,"inputdate":"2017-9-8 0:00:00","setid":"SL001","key":"气压","value":"821.2hpa"},{ "ID":0,"inputdate":"2017-9-8 0:00:00","setid":"SL001","key":"湿度","value":"89%"},{ "ID":0,"inputdate":"2017-9-8 0:00:00","setid":"SL001","key":"太阳辐射","value":"0w/m2"},{ "ID":0,"inputdate":"2017-9-8 0:00:00","setid":"SL001","key":"温度","value":"18.8℃"},{ "ID":0,"inputdate":"2017-9-8 0:00:00","setid":"SL001","key":"一小时降水量","value":"0mm"},{ "ID":0,"inputdate":"2017-9-8 1:00:00","setid":"SL001","key":"风速","value":"0.7m/s"},{ "ID":0,"inputdate":"2017-9-8 1:00:00","setid":"SL001","key":"风向","value":"138"},{ "ID":0,"inputdate":"2017-9-8 1:00:00","setid":"SL001","key":"气压","value":"820.8hpa"},{ "ID":0,"inputdate":"2017-9-8 1:00:00","setid":"SL001","key":"湿度","value":"92%"},{ "ID":0,"inputdate":"2017-9-8 1:00:00","setid":"SL001","key":"太阳辐射","value":"0w/m2"},{ "ID":0,"inputdate":"2017-9-8 1:00:00","setid":"SL001","key":"温度","value":"18.4℃"},{ "ID":0,"inputdate":"2017-9-8 1:00:00","setid":"SL001","key":"一小时降水量","value":"0mm"},{ "ID":0,"inputdate":"2017-9-8 2:00:00","setid":"SL001","key":"风速","value":"1.2m/s"},{ "ID":0,"inputdate":"2017-9-8 2:00:00","setid":"SL001","key":"风向","value":"116"},{ "ID":0,"inputdate":"2017-9-8 2:00:00","setid":"SL001","key":"气压","value":"820.5hpa"},{ "ID":0,"inputdate":"2017-9-8 2:00:00","setid":"SL001","key":"湿度","value":"93%"},{ "ID":0,"inputdate":"2017-9-8 2:00:00","setid":"SL001","key":"太阳辐射","value":"0w/m2"},{ "ID":0,"inputdate":"2017-9-8 2:00:00","setid":"SL001","key":"温度","value":"18.2℃"},{ "ID":0,"inputdate":"2017-9-8 2:00:00","setid":"SL001","key":"一小时降水量","value":"0mm"},{ "ID":0,"inputdate":"2017-9-8 3:00:00","setid":"SL001","key":"风速","value":"0.3m/s"},{ "ID":0,"inputdate":"2017-9-8 3:00:00","setid":"SL001","key":"风向","value":"85"},{ "ID":0,"inputdate":"2017-9-8 3:00:00","setid":"SL001","key":"气压","value":"820hpa"},{ "ID":0,"inputdate":"2017-9-8 3:00:00","setid":"SL001","key":"湿度","value":"94%"},{ "ID":0,"inputdate":"2017-9-8 3:00:00","setid":"SL001","key":"太阳辐射","value":"0w/m2"},{ "ID":0,"inputdate":"2017-9-8 3:00:00","setid":"SL001","key":"温度","value":"18.2℃"},{ "ID":0,"inputdate":"2017-9-8 3:00:00","setid":"SL001","key":"一小时降水量","value":"0mm"},{ "ID":0,"inputdate":"2017-9-8 4:00:00","setid":"SL001","key":"风速","value":"0.7m/s"},{ "ID":0,"inputdate":"2017-9-8 4:00:00","setid":"SL001","key":"风向","value":"192"},{ "ID":0,"inputdate":"2017-9-8 4:00:00","setid":"SL001","key":"气压","value":"820hpa"},{ "ID":0,"inputdate":"2017-9-8 4:00:00","setid":"SL001","key":"湿度","value":"94%"},{ "ID":0,"inputdate":"2017-9-8 4:00:00","setid":"SL001","key":"太阳辐射","value":"0w/m2"},{ "ID":0,"inputdate":"2017-9-8 4:00:00","setid":"SL001","key":"温度","value":"18.4℃"},{ "ID":0,"inputdate":"2017-9-8 4:00:00","setid":"SL001","key":"一小时降水量","value":"0mm"},{ "ID":0,"inputdate":"2017-9-8 5:00:00","setid":"SL001","key":"风速","value":"0.4m/s"},{ "ID":0,"inputdate":"2017-9-8 5:00:00","setid":"SL001","key":"风向","value":"220"},{ "ID":0,"inputdate":"2017-9-8 5:00:00","setid":"SL001","key":"气压","value":"819.9hpa"},{ "ID":0,"inputdate":"2017-9-8 5:00:00","setid":"SL001","key":"湿度","value":"97%"},{ "ID":0,"inputdate":"2017-9-8 5:00:00","setid":"SL001","key":"太阳辐射","value":"0w/m2"},{ "ID":0,"inputdate":"2017-9-8 5:00:00","setid":"SL001","key":"温度","value":"18.1℃"},{ "ID":0,"inputdate":"2017-9-8 5:00:00","setid":"SL001","key":"一小时降水量","value":"0mm"},{ "ID":0,"inputdate":"2017-9-8 6:00:00","setid":"SL001","key":"风速","value":"0.5m/s"},{ "ID":0,"inputdate":"2017-9-8 6:00:00","setid":"SL001","key":"风向","value":"172"},{ "ID":0,"inputdate":"2017-9-8 6:00:00","setid":"SL001","key":"气压","value":"820.1hpa"},{ "ID":0,"inputdate":"2017-9-8 6:00:00","setid":"SL001","key":"湿度","value":"97%"},{ "ID":0,"inputdate":"2017-9-8 6:00:00","setid":"SL001","key":"太阳辐射","value":"0w/m2"},{ "ID":0,"inputdate":"2017-9-8 6:00:00","setid":"SL001","key":"温度","value":"18.1℃"},{ "ID":0,"inputdate":"2017-9-8 6:00:00","setid":"SL001","key":"一小时降水量","value":"0mm"},{ "ID":0,"inputdate":"2017-9-8 7:00:00","setid":"SL001","key":"风速","value":"0m/s"},{ "ID":0,"inputdate":"2017-9-8 7:00:00","setid":"SL001","key":"风向","value":"226"},{ "ID":0,"inputdate":"2017-9-8 7:00:00","setid":"SL001","key":"气压","value":"820.5hpa"},{ "ID":0,"inputdate":"2017-9-8 7:00:00","setid":"SL001","key":"湿度","value":"98%"},{ "ID":0,"inputdate":"2017-9-8 7:00:00","setid":"SL001","key":"太阳辐射","value":"1w/m2"},{ "ID":0,"inputdate":"2017-9-8 7:00:00","setid":"SL001","key":"温度","value":"18.2℃"},{ "ID":0,"inputdate":"2017-9-8 7:00:00","setid":"SL001","key":"一小时降水量","value":"0mm"},{ "ID":0,"inputdate":"2017-9-8 8:00:00","setid":"SL001","key":"风速","value":"0.5m/s"},{ "ID":0,"inputdate":"2017-9-8 8:00:00","setid":"SL001","key":"风向","value":"158"},{ "ID":0,"inputdate":"2017-9-8 8:00:00","setid":"SL001","key":"气压","value":"820.8hpa"},{ "ID":0,"inputdate":"2017-9-8 8:00:00","setid":"SL001","key":"湿度","value":"98%"},{ "ID":0,"inputdate":"2017-9-8 8:00:00","setid":"SL001","key":"太阳辐射","value":"70w/m2"},{ "ID":0,"inputdate":"2017-9-8 8:00:00","setid":"SL001","key":"温度","value":"18.5℃"},{ "ID":0,"inputdate":"2017-9-8 8:00:00","setid":"SL001","key":"一小时降水量","value":"0mm"},{ "ID":0,"inputdate":"2017-9-8 8:00:00","setid":"","key":"负离子","value":"20860.00个/Cm3"},{ "ID":0,"inputdate":"2017-9-8 8:55:00","setid":"","key":"负离子","value":"20860.00个/Cm3"},{ "ID":0,"inputdate":"2017-9-8 9:00:00","setid":"SL001","key":"风速","value":"0.6m/s"},{ "ID":0,"inputdate":"2017-9-8 9:00:00","setid":"SL001","key":"风向","value":"203"},{ "ID":0,"inputdate":"2017-9-8 9:00:00","setid":"SL001","key":"气压","value":"821hpa"},{ "ID":0,"inputdate":"2017-9-8 9:00:00","setid":"SL001","key":"湿度","value":"94%"},{ "ID":0,"inputdate":"2017-9-8 9:00:00","setid":"SL001","key":"太阳辐射","value":"152w/m2"},{ "ID":0,"inputdate":"2017-9-8 9:00:00","setid":"SL001","key":"温度","value":"19.8℃"},{ "ID":0,"inputdate":"2017-9-8 9:00:00","setid":"SL001","key":"一小时降水量","value":"0mm"},{ "ID":0,"inputdate":"2017-9-8 9:50:00","setid":"","key":"负离子","value":"18790.00个/Cm3"},{ "ID":0,"inputdate":"2017-9-8 10:00:00","setid":"SL001","key":"风速","value":"1.3m/s"},{ "ID":0,"inputdate":"2017-9-8 10:00:00","setid":"SL001","key":"风向","value":"200"},{ "ID":0,"inputdate":"2017-9-8 10:00:00","setid":"SL001","key":"气压","value":"821.5hpa"},{ "ID":0,"inputdate":"2017-9-8 10:00:00","setid":"SL001","key":"湿度","value":"88%"},{ "ID":0,"inputdate":"2017-9-8 10:00:00","setid":"SL001","key":"太阳辐射","value":"366w/m2"},{ "ID":0,"inputdate":"2017-9-8 10:00:00","setid":"SL001","key":"温度","value":"20.4℃"},{ "ID":0,"inputdate":"2017-9-8 10:00:00","setid":"SL001","key":"一小时降水量","value":"0mm"},{ "ID":0,"inputdate":"2017-9-8 10:45:00","setid":"","key":"负离子","value":"25970.00个/Cm3"},{ "ID":0,"inputdate":"2017-9-8 11:00:00","setid":"SL001","key":"风速","value":"2.1m/s"},{ "ID":0,"inputdate":"2017-9-8 11:00:00","setid":"SL001","key":"风向","value":"186"},{ "ID":0,"inputdate":"2017-9-8 11:00:00","setid":"SL001","key":"气压","value":"821.2hpa"},{ "ID":0,"inputdate":"2017-9-8 11:00:00","setid":"SL001","key":"湿度","value":"76%"},{ "ID":0,"inputdate":"2017-9-8 11:00:00","setid":"SL001","key":"太阳辐射","value":"826w/m2"},{ "ID":0,"inputdate":"2017-9-8 11:00:00","setid":"SL001","key":"温度","value":"23.5℃"},{ "ID":0,"inputdate":"2017-9-8 11:00:00","setid":"SL001","key":"一小时降水量","value":"0mm"},{ "ID":0,"inputdate":"2017-9-8 11:40:00","setid":"","key":"负离子","value":"3210.00个/Cm3"},{ "ID":0,"inputdate":"2017-9-8 12:00:00","setid":"SL001","key":"风速","value":"2.6m/s"},{ "ID":0,"inputdate":"2017-9-8 12:00:00","setid":"SL001","key":"风向","value":"214"},{ "ID":0,"inputdate":"2017-9-8 12:00:00","setid":"SL001","key":"气压","value":"820.5hpa"},{ "ID":0,"inputdate":"2017-9-8 12:00:00","setid":"SL001","key":"湿度","value":"66%"},{ "ID":0,"inputdate":"2017-9-8 12:00:00","setid":"SL001","key":"太阳辐射","value":"873w/m2"},{ "ID":0,"inputdate":"2017-9-8 12:00:00","setid":"SL001","key":"温度","value":"24℃"},{ "ID":0,"inputdate":"2017-9-8 12:00:00","setid":"SL001","key":"一小时降水量","value":"0mm"},{ "ID":0,"inputdate":"2017-9-8 12:35:00","setid":"","key":"负离子","value":"1290.00个/Cm3"},{ "ID":0,"inputdate":"2017-9-8 13:00:00","setid":"SL001","key":"风速","value":"1.3m/s"},{ "ID":0,"inputdate":"2017-9-8 13:00:00","setid":"SL001","key":"风向","value":"209"},{ "ID":0,"inputdate":"2017-9-8 13:00:00","setid":"SL001","key":"气压","value":"819.8hpa"},{ "ID":0,"inputdate":"2017-9-8 13:00:00","setid":"SL001","key":"湿度","value":"68%"},{ "ID":0,"inputdate":"2017-9-8 13:00:00","setid":"SL001","key":"太阳辐射","value":"652w/m2"},{ "ID":0,"inputdate":"2017-9-8 13:00:00","setid":"SL001","key":"温度","value":"24.4℃"},{ "ID":0,"inputdate":"2017-9-8 13:00:00","setid":"SL001","key":"一小时降水量","value":"0mm"},{ "ID":0,"inputdate":"2017-9-8 13:30:00","setid":"","key":"负离子","value":"1360.00个/Cm3"}]';        $map = json_decode($html,true);        /*-----------隐藏该部分为加载当天的所有数据放到一个数组中-----*/        /*--$ismo--为24小时,格式中从023为一天*///        $ismo = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23];//        for($i=0;$i<count($ismo);$i++){//            if($ismo[$i] == 0){//                array_push($info,$this->isdateOne($map,"0"));//            }//            if($ismo[$i] == 1){//                array_push($info,$this->isdateOne($map,"1"));//            }//            if($ismo[$i] == 2){//                array_push($info,$this->isdateOne($map,"2"));//            }//            if($ismo[$i] == 3){//                array_push($info,$this->isdateOne($map,"3"));//            }//            if($ismo[$i] == 4){//                array_push($info,$this->isdateOne($map,"4"));//            }//            if($ismo[$i] == 5){//                array_push($info,$this->isdateOne($map,"5"));//            }//            if($ismo[$i] == 6){//                array_push($info,$this->isdateOne($map,"6"));//            }//            if($ismo[$i] == 7){//                array_push($info,$this->isdateOne($map,"7"));//            }//            if($ismo[$i] == 8){//                array_push($info,$this->isdateOne($map,"8"));//            }//            if($ismo[$i] == 9){//                array_push($info,$this->isdateOne($map,"9"));//            }//            if($ismo[$i] == 10){//                array_push($info,$this->isdateOne($map,"10"));//            }//            if($ismo[$i] == 11){//                array_push($info,$this->isdateOne($map,"11"));//            }//            if($ismo[$i] == 12){//                array_push($info,$this->isdateOne($map,"12"));//            }//            if($ismo[$i] == 14){//                array_push($info,$this->isdateOne($map,"14"));//            }//            if($ismo[$i] == 15){//                array_push($info,$this->isdateOne($map,"15"));//            }//            if($ismo[$i] == 16){//                array_push($info,$this->isdateOne($map,"16"));//            }//            if($ismo[$i] == 17){//                array_push($info,$this->isdateOne($map,"17"));//            }//            if($ismo[$i] == 18){//                array_push($info,$this->isdateOne($map,"18"));//            }//            if($ismo[$i] == 19){//                array_push($info,$this->isdateOne($map,"19"));//            }//            if($ismo[$i] == 20){//                array_push($info,$this->isdateOne($map,"20"));//            }//            if($ismo[$i] == 21){//                array_push($info,$this->isdateOne($map,"21"));//            }//            if($ismo[$i] == 22){//                array_push($info,$this->isdateOne($map,"22"));//            }//            if($ismo[$i] == 23){//                array_push($info,$this->isdateOne($map,"23"));//            }//        }//        dump($info);        /*--只获取现在一小时中的所有数据并保存到数据库中去--*/        $date_h = date("H");//获取当前的小时---必须大写H,小写则例如---16点->4点        $date_h_one = preg_replace('/^0+/','',$date_h);//根据格式去除小于10前面的0----09->9        $data = $this->isdateOne($map,$date_h_one); //执行函数isdateOne(数组,条件为当前的小时)        if($this->isdateOne($map,$date_h_one)){            $data["inputdate"] = date("Y-m-d H");//将时间全部转为当前的年月日时:00:00-------2017-09-08 16:00:00            $where["inputdate"] = date("Y-m-d H");            $r = M($this->model_name)->where($where)->find();//查找在当前时间中是否已经存在一条记录            if($r){                //存在只需要修改                $model_nam = M($this->model_name)->save($data);//添加数据到数据库                if($model_nam){                    echo json_encode(array("msg"=>"修改成功"));                }else{                    echo json_encode(array("msg"=>"数据没有调整"));                }            }else{                $model_nam = M($this->model_name)->add($data);//添加数据到数据库                if($model_nam){                    echo json_encode(array("msg"=>"添加成功"));                }else{                    echo json_encode(array("msg"=>"添加失败"));                }            }        }else{        }    }    //是否为一个小时    public function isdateOne($arr,$h){        $info = array();//定义输出的新数组        for($i=0;$i<count($arr);$i++){//            dump(date("H",strtotime($arr[$i]["inputdate"]))."---".$h);            //获取到该数组中字段inputdate时间的小时与当前时间是否相等            if(date("H",strtotime($arr[$i]["inputdate"])) == $h) {                //该条信息中字段key内容包含则将它对应的value赋给新的$info                if (strstr($arr[$i]["key"] , '太阳辐射')) {                    $info["radiation"] = $arr[$i]["value"];                }                if (strstr($arr[$i]["key"] , '温度')) {                    $info["temperature"] = $arr[$i]["value"];                }                if (strstr($arr[$i]["key"] , '降水量')) {                    $info["precipitation"] = $arr[$i]["value"];                }                if (strstr($arr[$i]["key"] , '风速')) {                    $info["windspeed"] = $arr[$i]["value"];                }                if (strstr($arr[$i]["key"] , '风向')) {                    $info["winddirection"] = $arr[$i]["value"];                }                if (strstr($arr[$i]["key"] , '湿度')) {                    $info["humidity"] = $arr[$i]["value"];                }                if (strstr($arr[$i]["key"] , '气压')) {                    $info["pressure"] = $arr[$i]["value"];                }                if (strstr($arr[$i]["key"] ,'负离子')) {                    $info["anion"] = $arr[$i]["value"];                }                //时间                $info["inputdate"] = $arr[$i]["inputdate"];            }        }        //输出数组        return $info;    }}
原创粉丝点击