A-A+
php获取当前值的下个ID号
在最近的PHP的一个需求中,需要获取到当前数据ID的下一个ID号,如果是连续性的数据,可以直接当前ID+1,但如果在数据库中删除一个数字的话就不行了,如果删除N个的话,使用当前ID+1就更不可能了,比如我当前的ID是 1,哪么我查询我当前 ID 的下一个 ID 号则是 ID 2,但如果 ID 2 被删除掉了,哪么下一个就是 ID 3。
目前的需求是在做一个定时脚本的升级,按照的是查询下一个ID号来自动升级,虽然级别只有五六个,但为了万无一失,还是做成了全自动化,即使中间删除掉一个或者多个ID号,依然会查询到下一个ID号,而不是使用 ID+1 这样的方式,这是一个大的BUG,可以获取到当前的ID号,获取下一个ID号的FUNCTION如下:
- /**
- * 计算上级ID操作
- * @param $user_id int 升级会员id
- * @param $use_type int 升级会员级别
- * @param return true
- */
- public function zhiwei_id($grade_id){
- $jiebie = M('DailiUserType')->where('is_use=0')->order('id asc')->select();
- foreach($jiebie as $k=>$val){
- $uip .= $val['id'].",";
- } //www.xiariboke.net
- $uip = substr($uip,0,strlen($str)-1);
- $uip = explode(',',$uip);
- $get_id = array_search($grade_id,$uip)+1;
- return $uip[$get_id];
- }
这是我自己写的一个php的函数,原理很简单,就是先获取到当前整个级别的数组,然后进行重组,这样即使删除N个ID号,只要重组了,哪么在数组中的索引值就会连续起来,这样再从数组中去查找下一个ID号。