php的多个字段的自动求和

本文介绍了一种使用M('cart')模型查询特定用户购物车中所有商品的总金额及数量的方法。通过字段聚合函数实现了对`shopPrice`和`goodsCnt`的求和操作,并针对指定用户ID进行了条件过滤。

$rd=M('cart')->field("sum(`shopPrice`) as `s_plan_amount`,sum(`goodsCnt`) as `goodsCnt`")->where("userId=$userId")->select();

运行结果:

{
    "state": "200",
    "msg": "成功",
    "result": [
        {
            "s_plan_amount": "30.00",
            "goodsCnt": "25"
        }
    ]
}吐舌头睡觉


在Medoo PHP中,如果你想对多个字段进行多条件的求和,可以稍微调整一下之前的代码。假设你想按条件对某个表的`quantity`和`price`字段分别进行求和,同时添加额外的条件,例如`category_id`等于特定值。以下是相应的代码实现: ```php <?php require 'medoo.php'; // 包含Medoo库 // 初始化Medoo实例 $db = new Medoo([ 'database_type' => 'mysql', 'database_name' => 'your_database_name', 'server' => 'localhost', 'username' => 'your_username', 'password' => 'your_password', 'charset' => 'utf8' ]); // 定义查询条件 $conditions = [ 'status' => 'completed', 'created_at[>]' => '2023-01-01', 'category_id' => 1, // 添加新的条件,比如category_id为1 ]; // 定义需要求和字段及其别名 $sumFields = ['quantity', 'price']; $selectFields = []; foreach ($sumFields as $field) { $alias = $field . '_sum'; $selectFields[] = "$field AS $alias"; } // SQL 查询,这里用Medoo的query方法代替select方法,因为query更灵活 $queryResult = $db->query('SELECT ' . implode(',', $selectFields) . ' FROM orders WHERE ' . implode(' AND ', $conditions)); // 检查查询结果 if ($queryResult) { $resultArray = $queryResult->fetchAll(); // 获取所有行的数据 foreach ($resultArray as $row) { foreach ($sumFields as $field) { echo $field . ': ' . $row[$field . '_sum'] . "\n"; } } } else { echo "No data found."; } ``` 这段代码增加了`category_id`条件,并将求和字段的别名和字段本身一起存储在`$selectFields`数组中。然后使用Medoo的`query`方法执行查询,获取所有满足条件的记录的求和结果。如果没有找到数据,就输出"No data found."。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值