首页 > 代码库 > [moka同学]Yii2.0循环查询并对结果累加求和
[moka同学]Yii2.0循环查询并对结果累加求和
在控制器中查询好数据 $model
在视图中输入
<?php foreach($model as $key=>$r):?> <tr class="text-center"> <td><?=$r->id?></td> <td><?=$r->name?></td> <td><?php echo Province::find()->where([‘country_id‘=>$r->id])->count(); ?></td> <td> <?php //通过国家ID-->找到省ID--->城市,统计城市$province_record = Province::find()->where(["country_id" => $r->id])->all(); if(!empty($province_record)) { $city_num =0; foreach ($province_record as $record => $p) { //单个省对应的城市数量 $city_count = City::find()->where(["province_id" => $p->id])->count(); //全部加起来才是国家对应的城市数量 $city_num += $city_count; } echo $city_num; }else{ echo ‘-‘; } ?> </td> <td> <a href="http://www.mamicode.com/<?= Url::toRoute([‘update‘, ‘id‘ => $r->id]) ?>" >编辑国家</a> <span class="cpmain" data-handle="confirm" data-url="<?= Url::toRoute([‘deletee‘, ‘id‘ => $r->id]) ?>">删除</span> </td> </tr> <?php endforeach; ?>
城市数量统计解释 [省表中有国家的id,城市表中有省的id,但是国家和城市表中间没有关联,所以需要在省表中通过国家ID,找出省ID,然后在通过省ID去城市表中查找城市。]
1.通过国家ID在省表中查询省ID
$province_record = Province::find()->where(["country_id" => $r->id])->all();
2.需要判断一下是否查询到了省ID,然后再根据省ID,在城市表中去查询城市。
if(!empty($province_record)) { $city_num =0; foreach ($province_record as $record => $p) { //单个省对应的城市数量 $city_count = City::find()->where(["province_id" => $p->id])->count(); //全部加起来才是国家对应的城市数量 $city_num += $city_count; } echo $city_num; }else{ echo ‘-‘; }
3.根据省ID查询出来的是单个省的城市的数量,我们需要统计国家中的城市数量,所以需要做累加
$model
[moka同学]Yii2.0循环查询并对结果累加求和
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。