PHP 统计数据功能 有感

统计,就是把基本的数据,整合起来。

用到sql的,有group by 功能,count功能,order by功能等等。

sql将收集的数据,进行统计分析。

一般情况下,sql处理后得到的数据,还要通过php的逻辑来进行整理。

以一定的格式,展示到前台。

一般都是以数组的方式展示,这也是数据结构的概念。

看这张图片,基本想想结构大概为

{上线数,出单总数,核过总数,总人均,总核率,{(坐席人1,工号1,出单数1,发货数1,核单率1),(坐席人2,工号2,出单数2,发货数2,核单率2)}}

如果用php展示成上面的结构的话,就很好处理了。

首先通过sql获取初次处理的数据,

别小看这初次处理的数据,处理的好,会非常的便捷。

SELECT a.user,count(order_id) as subcount,b.passcount,c.full_name from vicidial_order a LEFT JOIN (SELECT user,count(order_id) as passcount from vicidial_order where time > UNIX_TIMESTAMP('2015-11-7') and user_group = 'TeamOne' and verifysta = 'Y' GROUP BY user ) b on a.user = b.user LEFT JOIN vicidial_users c on a.user = c.user where time > UNIX_TIMESTAMP('2015-11-7') and a.user_group = 'TeamOne' GROUP BY a.user ;

sql思路,归类订单表,以user来进行归类。

获取每个人,当天的订单提交总数count()。

还要获取每个人,订单通过审核的总数,通过where筛选。

然后关联查询其他相关数据。

有了这些基本数据,其他的相关数据都能出来了。

通过php来处理获取,其中变量命名要清晰,这样也有利于阅读代码。

$select_sql = "SELECT a.user,count(order_id) as subcount,b.passcount,c.full_name from vicidial_order a LEFT JOIN (SELECT user,count(order_id) as passcount from vicidial_order where time > UNIX_TIMESTAMP('".$today."') and user_group = '".$user_group."' and verifysta = 'Y' GROUP BY user ) b on a.user = b.user LEFT JOIN vicidial_users c on a.user = c.user where time > UNIX_TIMESTAMP('".$today."') and a.user_group = '".$user_group."' GROUP BY a.user ";
        $rows = mysqli_query( $db_conn, $select_sql );
        $row_counts_list = mysqli_num_rows( $rows );
        if ( $row_counts_list != 0 )                
        {    
            $i = 0;
            while($rs = mysqli_fetch_assoc( $rows )) // mysqli_fetch_assoc 获取键值数据     mysqli_fetch_field 获取一条数据 mysqli_fetch_fields 获取多组数据    mysqli_fetch_row    
            {
                $outData['list'][$i]['user'] = $rs['user'];
                $outData['list'][$i]['full_name'] = $rs['full_name'];
                $outData['list'][$i]['subcount'] = $rs['subcount'];
                $outData['list'][$i]['passcount'] = $rs['passcount'];
                $outData['list'][$i]['passrate'] = round(($rs['passcount']/$rs['subcount'])*100)."%";

                $outData['all_subcount'] += $rs['subcount'];
                $outData['all_passcount'] += $rs['passcount'];

                $i++;
            }
            $outData['all_passrate'] = round(($outData['all_passcount']/$outData['all_subcount'])*100)."%";
            $outData['online_count'] = $row_counts_list;
            $outData['average_subcount'] = round($outData['all_subcount']/$outData['online_count'],1);
        }

其中outData就是要输出的数据结构类型。

Array
(
    [list] => Array
        (
            [0] => Array
                (
                    [user] => 8001
                    [full_name] => 魏硕磊
                    [subcount] => 3
                    [passcount] => 2
                    [passrate] => 67%
                )

            [1] => Array
                (
                    [user] => 8004
                    [full_name] => 刘庆
                    [subcount] => 2
                    [passcount] => 2
                    [passrate] => 100%
                )

            [2] => Array
                (
                    [user] => 8005
                    [full_name] => 章厚英
                    [subcount] => 4
                    [passcount] => 3
                    [passrate] => 75%
                )

        )

    [all_subcount] => 9
    [all_passcount] => 7
    [all_passrate] => 78%
    [online_count] => 3
    [average_subcount] => 3
)

获取数据后,一切都好办了。

套入页面就可以了,然后自己再调试调试。

<!-- begin -->
<?php foreach ($outData as $k => $v) { ?>
<div class="col-xs-12 col-sm-6 widget-container-col ui-sortable">
    
    <div class="widget-box widget-color-blue">
        <div class="widget-header">
            <h5 class="widget-title bigger lighter">
                <i class="ace-icon fa fa-table"></i><?php echo $v['group_name'];?>】成绩表
            </h5>
        </div>

        <div class="widget-body">
            <div class="widget-main no-padding">
                <table>
                    
                </table>
                <table class="table table-striped table-bordered table-hover">
                    <thead style="text-align:center;font-size:16px">
                        <tr>
                            <td colspan="2">上线总人数:</td>
                            <td colspan="3"><?php echo $v['stat']['online_count']?></td>
                        </tr>
                        <tr>
                            <td colspan="2">出单总数:</td>
                            <td  style="color:red"><?php echo $v['stat']['all_subcount']?></td>
                            <td >核过总数</td>
                            <td  style="color:red"><?php echo $v['stat']['all_passcount']?></td>
                        </tr>
                        <tr>
                            <td colspan="2">总人均:</td>
                            <td  style="color:red"><?php echo $v['stat']['average_subcount']?></td>
                            <td >总核率</td>
                            <td  style="color:red"><?php echo $v['stat']['all_passrate']?></td>
                        </tr>
                    </thead>

                    <thead class="thin-border-bottom">
                        <tr>
                            <th>
                                <i class="ace-icon "></i>
                                坐席人
                            </th>
                            <th>
                                <i class="ace-icon "></i>
                                工号
                            </th>
                            <th>
                                <i class="ace-icon "></i>
                                出单数
                            </th>
                            <th>
                                <i class="ace-icon "></i>
                                发货数
                            </th>
                            <th>
                                <i class="ace-icon "></i>
                                核单率
                            </th>
                        </tr>
                    </thead>

                    <tbody>
                        <?php foreach ($v['stat']['list'] as $listk => $listv) { ?>
                        <tr>
                            <td class=""><?php echo $listv['full_name']?></td>

                            <td>
                                <a href="#"><?php echo $listv['user']?></a>
                            </td>

                            <td class="">
                                <a href="#"><?php echo $listv['subcount']?></a>
                            </td>
                            <td class=""><?php echo $listv['passcount']?></td>
                            <td class=""><?php echo $listv['passrate']?></td>
                            
                        </tr>
                        <?php }?>
                        
                        <tr  style="color:red;font-size:16px">
                                <td class=""colspan="2">总计</td>
                                <td class=""><?php echo $v['stat']['all_subcount']?></td>
                                <td class=""><?php echo $v['stat']['all_passcount']?></td>
                                <td class=""><?php echo $v['stat']['all_passrate']?></td>
                        </tr>
                        
                        
                    </tbody>
                </table>
            </div>
        </div>
    </div>
</div>
<?php }?>
<!-- end -->

 

转载于:https://www.cnblogs.com/jiqing9006/p/4944946.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue是一种用于构建用户界面的渐进式框架,它可以与各种库和工具配合,提供了更方便、高效的开发方式。数据统计平台是一种专门用来对业务运行情况进行分析和统计的工具。CSDN是国内知名的技术交流社区,提供了众多的技术资源和论坛讨论。在CSDN上可以找到大量的Vue模板下载资源,包括数据统计平台模板。 Vue做的数据统计平台模板下载CSDN,是一种典型的前端开发模式,相对于传统的后端渲染,前端开发将业务逻辑和数据处理都移到了客户端,更加高效、灵活。这种模板下载可以帮助开发者更快地搭建数据统计平台,提高开发效率,减少了重复劳动。同时,这些模板通常已经经过优化和测试,可以保证性能和可靠性。 使用Vue做数据统计平台模板下载CSDN的好处不仅在于提高开发效率,还能使开发者更容易地维护和拓展代码。Vue提供了组件化开发的方式,可以将代码分成自包含的模块,方便重用和维护。而且Vue的响应式数据绑定和指令系统也很灵活,可以针对不同的业务需求进行适配。 综上所述,Vue做的数据统计平台模板下载CSDN是一种优秀的前端开发方式,它能够提高开发效率、减少重复劳动。开发者可以根据自己的需求,选择适合的模板,快速地搭建自己的数据统计平台,并且基于Vue的灵活性和可扩展性,能够轻松地进行维护和拓展。 ### 回答2: Vue是一种基于JavaScript的前端开发框架,它提供了一种便捷、高效的开发方式,使得前端开发者可以更加专注于业务逻辑的实现,而不必过多关注视图的渲染和交互。在数据统计领域,Vue也是非常流行的的开发框架,因为它可以方便地处理复杂的数据逻辑和交互操作。 CSDN是国内最大的IT技术社区,也是广大开发者获取技术资料、交流经验的重要平台。在CSDN上,我们可以找到各种各样的Vue数据统计平台模板下载,这些模板通常都是由开发者们精心制作的,包括了前端视图、数据处理和交互功能等方面,可以帮助开发者更快地完成项目开发。 从Vue做的数据统计平台模板下载CSDN这个话题来看,我们可以得出以下几点认识和感受: 1. Vue在数据统计领域十分流行,因为它可以方便地处理复杂的数据逻辑和交互操作; 2. CSDN是一个非常重要的技术社区,广大开发者可以在这里找到各种各样的技术资源和模板下载; 3. 数据统计平台模板是开发者们在实际项目开发中积累的经验和技术,可以帮助其他开发者更快地完成项目开发; 4. 下载模板并不等于拥有了完整的项目,下载后还需要进行二次开发和定制,方能真正适用于实际业务场景。 ### 回答3: Vue是一种流行的JavaScript框架,被广泛用于开发单页应用程序。对于数据统计平台,我们需要一个易于使用和美观的界面,以便用户能够轻松地导航和理解数据。CSDN是一个被广泛使用的技术社区,提供了许多Vue开发的数据统计平台模板下载,可以让开发者更加快速地构建出各种类型的数据统计平台。 这些模板一般包括仪表盘、数据可视化、数据分析、报告生成等核心功能,同时还提供多种主题和样式,可以按照需求进行定制和扩展。此外,这些模板还提供了许多常用的组件,如图表展示、数据表格展示、搜索筛选、用户权限管理等,方便快捷地集成到自己的项目中。 下载CSDN提供的Vue模板还有一个巨大的优势就是可以享受开源社区的支持,有流行的Vue社区提供的支持,同时也可以获得其他开发者的帮助和分享,这将对加快开发和提高开发效率有很大的帮助。 总之,CSDN提供的Vue数据统计平台模板下载是一个非常好的选择,它提供了美观的界面、核心功能、各种样式和主题、常用组件以及开源社区的支持,为开发人员提供了一种快捷和高效的方式来构建数据统计平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值