PHP TP5.0框架会员根据经验值升级等级

news/2025/2/6 9:50:13/

// 初始化最小差值为一个较大的数
             

     $minDifference = 500000;

先看一下会员等级表规则的表结构

普通会员默认注册就是,经验值0 

1.先查询出最高等级所需要的经验值


//先查询最高等级所需要的经验值
$b = Db::name('wechat_user_vip')->order('id DESC')->field('exp_num')->find();

2.在定义一个当前用户的经验值

$expNumToFind = 50;

3.再定义一个空的变量,用来存会员等级的id

 $foundID = null;

4.查询出所有的用户等级规则表信息

//查询会员等级表
$wechat_user_vip = Db::name('wechat_user_vip')->field('id,name,exp_num')->select();

5.开始循环遍历匹配

foreach ($wechat_user_vip as $item) {//现获取等级的经验值$currentExpNum = (int) $item["exp_num"];//在用用户当前的经验值 - 当前等级的经验值$difference = $expNumToFind - $currentExpNum;//如果大于等于0 并且 小于封顶的经验值if ($difference >= 0 && $difference < $minDifference) {//将当前找到的差值赋值给$minDifference$minDifference = $difference;//然后将当前所属等级的id赋值给foundID$foundID = $item["id"];}
}

最后然后再判断修改用户的等级ID

 //会员等级如果不相等,就给它修改为新的会员等级
if($new_user_data['vip_grade'] != $foundName){Db::table('glh_wechat_user')->where('id',$new_user_data['id'])->setField('vip_grade', $foundName);
}


http://www.ppmy.cn/news/534862.html

相关文章

postman-批量导入数据

1、新建txt文件&#xff08;此处命名为data.txt&#xff09;&#xff0c;使用notepad编辑。 第一行写下参数名&#xff0c;第二行开始&#xff0c;逐行写下参数各值&#xff0c;编码格式设置为UTF-8 2、在Pre-request Script中&#xff0c;获取参数值&#xff0c;并传到接口…

postek二次开发_详解Visual Basic脚本在BarTender中的应用

Visual Basic脚本可在常规打印时操作中使用&#xff0c;或与打印机代码修改器操作一同使用。BarTender 中的脚本助理包含一个脚本编写区域&#xff0c;在该区域中&#xff0c;既可以通过键入方式编写实际脚本&#xff0c;也可以使用脚本助理的表达式构建工具来编写实际脚本。此…

XML配置型工业条码打印、标签打印(POSTEK)解决方案

前言 现代工业生产中,标签打印无处不在,可以说标签就是产品的脸面.标签种类繁琐,特别是在工业生产中,标签信息需要与生产系统相关联,动态地获取打印信息.当然我们可以为每个标签写一个生成程序,但如果标签种类成千上万,那么就需要投入大量的人力、物力.比如一个很小的布局变动也…

java 条形码打印机_java使用佳博打印机打印条形码

在实际开发中我们使用条形码打印机打印条形码&#xff0c;这里介绍下使用动态链接库TSClib.dll编辑方式打印条形码&#xff0c;还有js实现方式&#xff0c;这里不进行介绍&#xff0c;会给相关的demo 准备工作&#xff1a; 1.佳博打印机&#xff0c;如佳博GP-1124D 详细参数如下…

跨域、CORS、JSONP

跨域、CORS、JSONP(面试必考) ajax和Promise的跨域问题 跨域一般用2种方案JSONP和CORS 跨域 前端与后端的交互。 关键知识 1.同源策略 浏览器故意设计的一个功能限制 2.CORS 突破浏览器限制的一个办法 3.JSONP IE时代的妥协 一.同源策略 1.同源定义 源 控制台输入window.orig…

postek c168 203dhi打印机条码纸校正问题

如果按普通的校正步骤去处理问题而不能解决的话&#xff0c;可以试着把打印机首选项的参数给改变下&#xff0c;把纸张参数调至默认纸张&#xff0c;然后直接设置默认纸张的大小。 转载于:https://blog.51cto.com/594163/853626

postek二次开发_PostekPrinterClient Postek打印机二次开发demo - 下载 - 搜珍网

文件名大小更新时间 PostekPrinterClient\Common\CheckMIN.cpp20142008-04-23 PostekPrinterClient\Common\ConfigFile.cpp51362008-01-21 PostekPrinterClient\Common\ConfigFile.h23372007-05-13 PostekPrinterClient\Common\CriticalSecMon.h6612007-02-11 PostekPrinterCli…

postek二次开发_20190626_二次开发BarTender打印机_C#代码_一边读取TID_一边打印_打印机POSTEK...

demo代码如下: private void btnPrint_Click(object sender, EventArgs e) { if (this.btnPrint.Text "停止打印") { SetBtnPrintUIEnable(); return; } //禁用界面上的相关按钮 SetBtnPrintUIDisable(); var dt new DataTable(); new Task( () > { ///开始的打…