业务经理

微信扫描以上二维码

028-61286886

技术咨询

在控制器里面统计字段‘length’的总和,请问系统是否有现成函数调用呢

迅睿框架 更新 2022-01-07 15:07:59 zooxen

我现在需要在控制器里面统计字段‘length’的总和,请问系统是否有现成函数调用呢,需要配合where或者可以附加限制条件的方法。

我写了一个可以实现,但是不知道取出所有数据然后PHP进行求和是不是合理和效率最优化。求指点。代码如下:

public function set_length() {
 
     $id = \Phpcmf\Service::L('Input')->get('id',);
  $rows = \Phpcmf\Service::M()->table(dr_module_table_prefix(APP_DIR).'_form_son')->select('length')->where('status','1' and 'cid',$id)->getAll();
  \Phpcmf\Service::M()->table(dr_module_table_prefix(APP_DIR))->update($id, [
   'length' => array_sum(array_column($rows,'length'))
  ]);
     $this->_json(1, dr_lang('更新完成,即将刷新页面'));
 }

还有一个,我前端调用了js的dr_ajax_confirm_url()方法。我想执行完刷新当前页面应该如何操作呢,我现在是写:

'url' => "javascript:dr_ajax_confirm_url('" . SELF . "?s=demo&c=home&m=set_length&id={cid}','确定要执行吗?', '" . SELF . "?s=demo&c=home&m=index')"

跳转页面是这个列表的首页,而不是当前页面,应该是第三个参数写当前页。。我不知道插件的Clink.php应该如何表达刷新当前页。


以上2点求答,感谢

方案

  • 官方研发技术-胡老师 #1 · 2022-01-07 08:59:11
    mysql由selectsum子句,专门来做求和的,可以搜索想这方面的知识
  • zooxen #2 · 2022-01-07 09:06:03
    官方研发技术-胡老师
    $row = \Phpcmf\Service::M()->db->query("SELECT SUM(length) AS lengths FROM dr_1_demo_form_son;");
    我也试过了,不知道这样写是不是不对。返回的lengths=NULL
  • 阿Rain #3 · 2022-01-07 09:14:57
    SELECT SUM(length) AS lengths FROM dr_1_demo_form_son看着没问题,很标准,去phpmyadmin里面运行下看看结果
  • zooxen #4 · 2022-01-07 09:17:50
    阿Rain PhpMyAdmin里面正常的,能获取到数据,所以套用数据库的query不知道为啥是null
  • zooxen #5 · 2022-01-07 15:06:33
    满意答案
    总算解决了运行SQL问题
    $id = \Phpcmf\Service::L('Input')->get('id',);
    $r = \Phpcmf\Service::M()->query_sql("SELECT SUM(IF(status=1 AND cid=".$id.",length,0)) AS length FROM " . \Phpcmf\Service::M()->dbprefix() . SITE_ID . '_' . APP_DIR . '_form_son');
    跳转问题后面再研究吧。
  • zooxen #6 · 2022-01-07 15:07:59
    @zooxen:自己解决。。官方只让我百度,执行SQL的函数也不说一下。重点是,文档里没有,只能到Model文件里面爬楼

迅睿系统漏洞

AI文章生成器
AI文章生成器(2026-09-20)
任务拆分独立配置 新增AI生成关键词 新增指令模板 新增品牌信...
GEO系统
GEO系统(2026-09-20)
后台 AEO 与运营端对齐:区域、跑批、CSV、补强、剧本均可在迅睿...
多语言翻译Seolang
多语言翻译Seolang(2026-09-18)
1. HTML lang 无需修改模板,自动适配当前语种页面 lan...
GeoSeo工具箱
GeoSeo工具箱(2026-09-18)
修正菜单规范
后台二次登陆验证
后台二次登陆验证(2026-09-18)
新增邮箱验证 新增短信验证
京东云短信
京东云短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
创蓝短信
创蓝短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
火山引擎短信
火山引擎短信(2026-09-17)
- 验证码有效期改只读展示 - 有效期旁新增系统设置按钮 - 保...
外贸多语言建站
外贸多语言建站(2026-09-17)
优化独立内容过滤机制