[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="<?= 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM