A-A+

php获取当前值的下个ID号

2017年11月27日 PHP技术文章 暂无评论 阅读 0 views 次

在最近的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如下:

  1. /** 
  2.  * 计算上级ID操作 
  3.  * @param $user_id int 升级会员id 
  4.  * @param $use_type int 升级会员级别 
  5.  * @param return true 
  6.  */  
  7.   
  8. public function zhiwei_id($grade_id){  
  9.       
  10.     $jiebie = M('DailiUserType')->where('is_use=0')->order('id asc')->select();  
  11.     foreach($jiebie as $k=>$val){  
  12.         $uip .= $val['id'].",";  
  13.     } //www.xiariboke.net  
  14.     $uip = substr($uip,0,strlen($str)-1);  
  15.     $uip = explode(',',$uip);  
  16.     $get_id = array_search($grade_id,$uip)+1;  
  17.     return $uip[$get_id];  
  18. }  

这是我自己写的一个php的函数,原理很简单,就是先获取到当前整个级别的数组,然后进行重组,这样即使删除N个ID号,只要重组了,哪么在数组中的索引值就会连续起来,这样再从数组中去查找下一个ID号。

标签:

给我留言