电表开始是:2385度,水表开始是:222方。电费是1元1度,水是3元1方。
数据是通过phpmyadmin,对着收据单一张一张输入进去的。数据借助Yii2查询,查询结果,1个数组存放每个日期的总金额,1个数组存放每个key下值。输出的json数据放入到demo中,替换数据。就可以了。使用composer命令安装了yii2的basic模板,项目名称是basic.
composercreate-project yiisoft/yii2-app-basic basic 2.0.11
basic/controllers/SiteController.php文件的actionIndex方法修改为:
/** * Displays homepage. * * @return string */ public function actionIndex() { $posts = Yii::$app->db->createCommand('SELECT * FROM `live` order by id') ->queryAll(); $arrkey = array(); $sum = array(); foreach($posts as $value){ $sum[] = $value['rent'] + $value['network'] + $value['water'] + $value['electric']; foreach($value as $key=>$row){ if(array_key_exists($key,$arrkey)){ $data = $arrkey[$key]; array_push($data,$row); $arrkey[$key] = $data; }else{ $arrkey[$key] = array($row); } } } //print_r($arrkey); return $this->render('index',['json'=>$arrkey,'sum'=>$sum]); }
在basic/views/site/index.php文件中,添加了
<div class="row"> <div class="col-lg-12"> <?php foreach($json as $key=>$row):?> <p><?php echo $key.' : '.json_encode($row);?></p> <?php endforeach;?> <p>sum : <?php echo json_encode($sum);?></p> </div> </div>
输出的结果是:
其中双引号数据,通过sublime text3 替换方法,替换成没有双引号的数据了。
DB:
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+08:00"; -- -- Database: `zhongshanlive` -- -- -------------------------------------------------------- -- -- 表的结构 `live` -- CREATE TABLE `live` ( `id` int(11) NOT NULL, `date` date NOT NULL, `rent` int(11) NOT NULL, `network` int(11) NOT NULL, `water` int(11) NOT NULL, `electric` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -- 转存表中的数据 `live` -- INSERT INTO `live` (`id`, `date`, `rent`, `network`, `water`, `electric`) VALUES (1, '2015-11-02', 270, 0, 0, 40), (2, '2015-12-02', 270, 40, 6, 24), (3, '2016-01-02', 270, 40, 6, 44), (4, '2016-02-02', 270, 40, 0, 0), (5, '2016-03-02', 270, 40, 3, 127), (6, '2016-04-02', 270, 40, 6, 64), (7, '2016-05-02', 270, 40, 3, 53), (8, '2016-06-02', 270, 40, 3, 37), (9, '2016-07-02', 270, 40, 9, 31), (10, '2016-08-02', 270, 40, 6, 24), (11, '2016-09-02', 270, 40, 6, 24), (12, '2016-10-02', 270, 40, 9, 31), (13, '2016-11-02', 270, 40, 6, 24), (14, '2016-12-02', 270, 40, 6, 34), (15, '2017-01-02', 270, 40, 3, 42), (16, '2017-02-02', 270, 40, 3, 47), (17, '2017-03-02', 270, 40, 3, 37), (18, '2017-03-25', 270, 40, 3, 27); -- -- Indexes for dumped tables -- -- -- Indexes for table `live` -- ALTER TABLE `live` ADD PRIMARY KEY (`id`); -- -- 在导出的表使用AUTO_INCREMENT -- -- -- 使用表AUTO_INCREMENT `live` -- ALTER TABLE `live` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19;