在遍历结果集中判断两次循环的值是否都为0

php中文网
发布: 2016-06-23 14:27:25
原创
1181人浏览过

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

代码已经写到这:

$i=0;while ($row = $db->fetch_array($result)){	$i++;	}
登录后复制


回复讨论(解决方案)

数据比较大,最好也可以考虑下效率问题。

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

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

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

不然就把结果转数组,用foreach对下标操作
计数器的话该怎么操作,本人菜鸟,万分感谢。

$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
登录后复制

直接对比或读出后处理


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

不然就把结果转数组,用foreach对下标操作
计数器的话该怎么操作,本人菜鸟,万分感谢。
和#4的思路类似,但老徐直接用了缓存数据,比用计数器更简洁了(计数器是缓存下标$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
登录后复制

直接对比或读出后处理



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

不然就把结果转数组,用foreach对下标操作
计数器的话该怎么操作,本人菜鸟,万分感谢。
和#4的思路类似,但老徐直接用了缓存数据,比用计数器更简洁了(计数器是缓存下标$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
登录后复制

直接对比或读出后处理

那如果是 A表有两个字段,phone及value 。 循环判断 $i.phone与$i+1.phone相同,$i.value与$i+1.value的值又都为0   这样语句怎么写?

有一就有二,不过就是多加的判断而已

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号