PHP 使用分页方法修改多数据字段
这个标题听起来很别扭,需求是这样的。mysql中的customer表有5000条数据。现在要给customer表添加一个order_num 字段,客户每下单一次就update这个字段+1.
是的,新增加的字段只要之后客户完成下单就会+1,问题是,之前客户下过多少单子,也要同步到order_num。
所以,思路就是这样的。如果一次取出5000的客户,循环每一个客户在去order表查找订单个数。估计set_time_limit就超时了,然后呢,想起了php的分页请求,等一个limit 分页大小的数据请求修改完成后,在分页请求下一页的数据进行修改。
伪代码:
$page= isset($_GET["page"])?$_GET["page"]:''; # 当前第N分页
if(!$page){
$page=1;
}
echo "当前第{$page}页<hr>"; $pageSize=3; # 分页大小
$offset=$page==1?0:($page-1)*$pageSize; # 当前offset sleep(5); # 睡眠5秒,模拟后台程序执行
echo "select * from customer where 1=1 limit {$pageSize} offset {$offset} <hr>";
if($page*$pageSize>13){ # count 为空 更新完成
echo '更新完成';
exit();
} $page++;
echo $url="/crontab/customer-order-num?page={$page}";
echo "<script> window.location.href='{$url}'; </script>";
Yii2 分页更新字段订单量:
$page = isset($_GET["page"]) ? $_GET["page"] : ''; # 当前第N分页
if (!$page) {
$page = 1;
}
echo "当前第{$page}页<hr>"; $pageSize = 3; # 分页大小
$offset = $page == 1 ? 0 : ($page - 1) * $pageSize; # 当前offset sleep(3); # 睡眠5秒,模拟后台程序执行
$customerModel = \common\models\Customer::find()->offset($offset)->limit($pageSize)->all(); # LIMIT 3 OFFSET 3 三的倍数
if (!empty($customerModel)) {
foreach ($customerModel as $value) {
$orderCount = \common\models\Order::find()->where("cid=:cid and status=3")->params(["cid" => $value->id])->count(); # 订单之和 状态3:完成
if ($orderCount) {
\common\models\Customer::updateAll(["order_num" => $orderCount], "id={$value->id}");
}
}
} else { # count 为空 更新完成
echo '更新完成';
exit();
} $page++;
echo $url = "/crontab/customer-order-num?page={$page}";
echo "<script> window.location.href='{$url}'; </script>";
}

PHP 使用分页方法修改多数据字段的更多相关文章
- SQL Server游标 C# DataTable.Select() 筛选数据 什么是SQL游标? SQL Server数据类型转换方法 LinQ是什么? SQL Server 分页方法汇总
SQL Server游标 转载自:http://www.cnblogs.com/knowledgesea/p/3699851.html. 什么是游标 结果集,结果集就是select查询之后返回的所 ...
- 在 Laravel 中通过自定义分页器分页方法实现伪静态分页链接以利于 SEO
我们知道,Laravel 自带的分页器方法包含 simplePaginate 和 paginate 方法,一个返回不带页码的分页链接,另一个返回带页码的分页链接,但是这两种分页链接页码都是以带问号的动 ...
- Sql Server 2012 的新分页方法分析(offset and fetch) - 转载
最近在分析 Sql Server 2012 中 offset and fetch 的新特性,发现 offset and fetch 无论语法的简洁还是功能的强大,都是相当相当不错的 其中 offset ...
- SharePoint2013 SharePoint-Hosted 模式 分页方法
/**分页js插件 var ListPager = new listPaging(); 先调用start方法加载上下文 然后调用dataLoad方法查询第一页数据 需要设置几个属性值 ListPage ...
- SQL SERVER 分页方法
最近项目中需要在SQL SERVER中进行分页,需要编写分页查询语句.之前也写过一些关于分页查询的语句,但是性能不敢恭维.于是在业务时间,在微软社区Bing了一篇老外写的关于SQL SERVER分页的 ...
- Oracle 分页方法研究
1.Oracle 中的三大分页方法 1.1.通过分析函数分页 1.2.通过 ROWNUM 分页 1.3.通过 ROWID 分页 2.Oracle 分页解决方案浅析 2.1.纯后端代码完成分页 2.2. ...
- plsql修改表字段alter
场景:在生产过程中有时候需要不同的环境中修改表字段,使用sql语句比较方便! 1 演示 --添加字段的语法 alter table tablename add (column datatype [de ...
- Laravel 中通过自定义分页器分页方法实现伪静态分页链接以利于 SEO
我们知道,Laravel 自带的分页器方法包含 simplePaginate 和 paginate 方法,一个返回不带页码的分页链接,另一个返回带页码的分页链接,但是这两种分页链接页码都是以带问号的动 ...
- SQL server 分页方法小结
这里面介绍一下常用的分页方法: 1.使用top来分页 select top @pageSize * from table where id not in (select top @pageSize*( ...
随机推荐
- Rest webservice 和SOAP webservice
SOAP: 简单对象访问协议(Simple Object Access Protocol,SOAP)是一种基于 XML 的协议,可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP) ...
- [转] mysql 存储引擎
最常用的存储引擎 innodb MyISAM MyISAM,这种效率高,不支持事务,不支持外键,每个表有单独的存储文件(多个),方便管理. innodb,一般默认的都是innodb,效率也不低,支持事 ...
- Mac下maven工程的创建,并搭建SSH环境
最近项目有用到maven,就特地学了一下.maven的一句话攻略就是,项目托管.帮你解决各种项目琐事:清理,导包....等等. 首先先到apach官网去下载一个maven的包,http://maven ...
- centos 6.4 getmail 收取163 邮件
#CentOS 6.6 64bit 默认yum 源没有getmail rpm包#首先安装EPEL yum 源EPEL(Extra Packages for Enterprise Linux):http ...
- [Exchange 2013]创建约会和会议
简介 会议和约会之间的重要区别是,会议有与会者,并且没有约会.约会和会议可以是单实例或属于重复序列,但与会者. 房间或资源中不包括约会,因为它们不需要发送一条消息.在内部,Exchange 使用相同的 ...
- 【linux使用】bash shell命令行常用快捷键 (转载)
移动: Ctrl + A: 移动到当前编辑的命令行首, Ctrl + E: 移动到当前编辑的命令行尾, Ctrl + F 或 ->:按字符右移(往命令行尾部方向,前移) Ctrl + B 或 & ...
- 【IOS】自定义可点击的多文本跑马灯YFRollingLabel
需求 项目中需要用到跑马灯来仅展示一条消息,长度合适则不滚动,过长则循环滚动. 虽然不是我写的,但看了看代码,是在一个UIView里面放入两个UILabel, 在前一个快结束的时候,另一个显示.然而点 ...
- [C/C++] C/C++延伸学习系列之STL及Boost库概述
想要彻底搞懂C++是很难的,或许是不太现实的.但是不积硅步,无以至千里,所以抽时间来坚持学习一点,总结一点,多多锻炼几次,相信总有一天我们会变得"了解"C++. 1. C++标准库 ...
- string.Format格式化用法详解
1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元) string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0 ...
- 双向数据绑定(angular,vue)
最近github上插件项目更新了关于双向数据绑定的实现方式,关于angular和vue. angular众所周知是使用的脏检查($dirty).一开始大家会认为angular开启了类似setInter ...