日期:2014-05-16  浏览次数:20513 次

在遍历结果集中判断两次循环的值是否都为0
就是说   A表有10条数据,字段为phone,select之后   用while遍历,在while里面进行判断,$i的phone值与$i+1的phone值如果都等于0,那么进行相关操作。  这个循环该怎么写

代码已经写到这:


$i=0;
while ($row = $db->fetch_array($result)){
$i++;
}

------解决方案--------------------
$last = array();
while ($row = $db->fetch_array($result)){
  if($last && $row['phone'] == 0 && $last['phone'] == 0) {
    //处理代码
  }
  $last = $row;
}


也可以直接查询

set @last:='';
select @last as last, phone, @last:=phone from tbl_name

直接对比或读出后处理
------解决方案--------------------
引用:
Quote: 引用:

增加一个计数器,判断这个计数器的连续性,是则执行,否则重置

不然就把结果转数组,用foreach对下标操作

计数器的话该怎么操作,本人菜鸟,万分感谢。

和#4的思路类似,但老徐直接用了缓存数据,比用计数器更简洁了(计数器是缓存下标$i),所以我就不献丑了