当前位置: 首页 > news >正文

fastadmin操作数据库字段为json、查询遍历each、多级下拉、union、php密码设置、common常用函数的使用小技巧

数据库中遇到的操作

查询字段是json的某个值

 //获取数据库中某个字段是json中得某个值,进行查询,goods是表中字段,brand_id是json中要查詢的字段。//数据类型一定要对应要不然查询不出来。$map['json_extract(goods, "$.brand_id")'] = (int)$params['brand_id']; 

查询结果进行遍历操作:

db('product_plant')->where($map)->order('id', 'desc')->paginate($limit)->each(function ($item, $key) use ($store_id) {//代码逻辑
  • 多级下拉
if (isset($params['cat']) && !empty($params['cat'])) {if (count($params['cat']) == 1) {$shop_cat_array = model('store_category')->where(['pid'=>$params['cat'][0], 'store_id'=>$this->auth->id])->column('id');$cat = model('store_category')->where('pid', 'in', $shop_cat_array)->where('store_id', $this->auth->id)->column('id');$map['shop_cat'] = ['in', $cat];}else if (count($params['cat']) == 2) {$cat = model('store_category')->where(['pid'=>$params['cat'][1], 'store_id'=>$this->auth->id])->column('id');$map['shop_cat'] = ['in', $cat];}else {$map['shop_cat'] = $params['cat'][2];}}

UNION的使用


$field = 'p.id';
$sql = db('product')->alias('p')->field($field)->where($where)->union(function ($query) use ($where,$field) {$query->name('store_product')->alias('p')->field($field)->where($where);
}, true)->buildSql();
$model = Db::table($sql . ' as a');
$productIds = $model->column('id');
$map['product_id'] = ['in', $productIds];//获取当前域名
//$domian = $this->request->domain()//array_merge可以写在where条件里整合
//$bill_money = db('store_bill')->where(array_merge(['comein'=>1],$w))->sum('price')
//            -db('store_bill')->where(array_merge(['comein'=>0],$w))->sum('price');

查看数据库中json字段不符合json结构的:

-- 不符合json结构不能使用json_container()SELECT * FROM hzqc_product_plant WHERE JSON_VALID(goods) = 0;SELECT * FROM `hzqc_product_plant` WHERE  `store_id` = 91000003  AND json_extract(goods, "$.brand_id") = 6074
SELECT * FROM `hzqc_product_plant` WHERE  `store_id` = 91000003  AND goods->'$."brand_id"' = 6074;

php密码设置

$params['salt'] = Random::alnum();
$params['password'] = md5(md5($params['password']) . $params['salt']);
  • 常用的一些东西可以放到common.php中,在使用的时候直接调用
if (!function_exists('cdnurl')) {/*** 获取上传资源的CDN的地址* @param string $url 资源相对地址* @return string*/function cdnurl($url) {return preg_match("/^https?:\/\/(.*)/i", $url) ? $url : think\Config::get('upload.cdnurl') . $url;}
}//常用常量参数也可以放到common中
if (!function_exists('mall_payment_type')) {function mall_payment_type($code = '9') {$result = ['wechat'=>'微信支付', 'alipay'=>'支付宝', 'credit'=>'信用支付', 'transfer'=>'对公转账', 'deposit'=>'预付款', 'zero'=>'零元领取礼包', 'mixed'=>'混合支付'];return ($code == '9') ? $result : $result[$code]??"";}
}//随机获取一个IP
if (!function_exists('rand_id')) {function rand_id(){$data = array(119.120.'.'.rand(1,255).'.'.rand(1,255),124.174.'.'.rand(1,255).'.'.rand(1,255),116.249.'.'.rand(1,255).'.'.rand(1,255),118.125.'.'.rand(1,255).'.'.rand(1,255),42.175.'.'.rand(1,255).'.'.rand(1,255),124.162.'.'.rand(1,255).'.'.rand(1,255),211.167.'.'.rand(1,255).'.'.rand(1,255),58.206.'.'.rand(1,255).'.'.rand(1,255),117.24.'.'.rand(1,255).'.'.rand(1,255),203.93.'.'.rand(1,255).'.'.rand(1,255),);//随机获取一个IP地址$ip = $data[array_rand($data)];return $ip;}
}
http://www.lryc.cn/news/487237.html

相关文章:

  • UniApp在Vue3的setup语法糖下自定义组件插槽详解
  • springboot上传下载文件
  • Python学习从0到1 day29 Python 高阶技巧 ⑦ 正则表达式
  • 机器学习-web scraping
  • 移远通信5G RedCap模组RG255C-CN通过中国电信5G Inside终端生态认证
  • Javaweb梳理17——HTMLCSS简介
  • 【Android、IOS、Flutter、鸿蒙、ReactNative 】自定义View
  • win11跳过联网激活步骤
  • 利用c语言详细介绍下冒泡排序
  • C# 面向对象
  • android wifi扫描的capability
  • datawhale 2411组队学习:模型压缩4 模型量化理论(数据类型、int8量化方法、PTQ和QWT)
  • 数据分析-48-时间序列变点检测之在线实时数据的CPD
  • POD-Transformer多变量回归预测(Matlab)
  • Hadoop生态圈框架部署(七)- MySQL安装与配置教程
  • 视频直播5G CPE解决方案:ZX7981PG/ZX7981PMWIFI6网络覆盖
  • 技术周刊 |Google 2024 年首届 Web AI 峰会回顾
  • web——upload-labs——第十二关——%00截断
  • ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值。ojdbc8版本23.2.0.0驱动BUG【已解决】
  • win10 自带 directx 修复工具怎么用?最新 directx 修复工具使用方法介绍
  • 报错java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not ...解决方法
  • 前端三大件之CSS
  • C语言 | 指针 | 野指针 | 数组指针 | 指针数组 | 二级指针 | 函数指针 | 指针函数
  • mysql 的乐观锁和 mvcc 是一回事吗
  • redis的击穿和雪崩
  • java中创建多线程的4种方式
  • MATLAB深度学习(二)——如何训练一个卷积神经网路
  • 删除k8s 或者docker运行失败的脚本
  • 重置docker版本的octoprint管理员账号密码
  • prometheus监控数据远程写入Kafka集群