php处理数据库数据,每处理一个数据返回客户端显示当前状态的方法。
php处理大量数据,每处理一个数据返回客户端显示当前状态的方法。
类似于dedecms生成静态页
想法:
- 客户端发送请求
- 服务器端接受请求,开始统计所需处理的数据量
- 将所需处理数据按一定规则排列,发送到服务器处理端
- 服务器处理端处理了第一个数据,将处理结果经过一定处理后发送给客户端
- 客户端接收到结果,自动将处理结果显示并发送到服务器
- 服务器接收到处理结果 将它转发到服务器处理端
- 处理端继续处理结果...
- 循环4-7步骤,直到处理完毕
实验过程:
1.创建数据库和表
create databases handle; create table user( id int unsigned not null auto_increment primary key, name varchar(8), sex tinyint(1) default '', score int not null, state tinyint(1) );
2.向表中添加数据(不示例)
3.创建index.html客户端,a.php服务端1,b.php服务端2
Index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>客户端</title>
</head>
<body> <button onclick="send('a.php?state=0')">开始请求</button> <div style="position: fixed;width: 500px;height: 300px;top: 100px;background: gray">
<span style="color: white;font-size: 20px;"></span>
</div>
<script type="text/javascript" src="./jquery-1.10.2.min.js"></script>
<script type="text/javascript">
//创建一个模态框
function display(value){
$('span').html(value);
} //ajax
function send(dizhi){
$.ajax({
type: "get",
url: dizhi,
success: function(msg){
var arr=JSON.parse(msg);
console.log(arr); //alert(arr.value);
var tishi="已经处理 "+arr.now +"个,共"+arr.all+"个";
display(tishi); if(arr.now!=arr.all){
send("a.php?now="+arr.now+"&all="+arr.all);
}else{
alert("完成!");
}
}
});
}
</script>
</body>
</html>
a.php:
<?php
require('./dbconfig.php');
$link=mysql_connect(HOST,USER,PASS) or die('数据库链接失败');
mysql_select_db(DBNAME);
/*
查询数据
$sql="select * from user";
$result=mysql_query($sql);
$row=mysql_fetch_assoc($result);
var_dump($row);
*/
/*
循环插入
for($i=3;$i<=100;$i++){
$sql= "insert into user(name,score,state) values('z".$i."',".$i.",1)";
mysql_query($sql);
}
*/ /*查询需要处理的数据总数*/
//isset($_GET['state'])?$_GET['state']:0; if(isset($_GET['state'])){
$sql="select count(*) from user";
$result=mysql_query($sql);
$all=mysql_result($result,0);
$now=0;
header("Location: b.php?all={$all}&now=0");
}else{
header("Location: b.php?all={$_GET['all']}&now={$_GET['now']}");
} /*返回当前处理的数据*/
b.php:
<?php
require('./dbconfig.php');
$link=mysql_connect(HOST,USER,PASS) or die('数据库链接失败');
mysql_select_db(DBNAME); /*返回当前处理的数据*/
//$id=$_GET['id'];//获取将要处理的id
$now=$_GET['now'];//已经处理的个数
$all=$_GET['all'];//总共要处理的个数 $sql="select score from user limit {$now},1";
$result=mysql_query($sql);
$value=mysql_result($result, 0);
$now++;
$arr=array(
'now'=>$now,
'all'=>$all,
'value'=>$value
); //print_r($arr);
echo json_encode($arr);
dbconfig.php:
<?php
define('HOST','127.0.0.1');
define('USER', 'root');
define('PASS','root');
define('DBNAME','handle');
以上是全部~
php处理数据库数据,每处理一个数据返回客户端显示当前状态的方法。的更多相关文章
- 9. 获得图片路径,构造出训练集和验证集,同时构造出相同人脸和不同人脸的测试集,将结果存储为.csv格式 1.random.shuffle(数据清洗) 2.random.sample(从数据集中随机选取2个数据) 3. random.choice(从数据集中抽取一个数据) 4.pickle.dump(将数据集写成.pkl数据)
1. random.shuffle(dataset) 对数据进行清洗操作 参数说明:dataset表示输入的数据 2.random.sample(dataset, 2) 从dataset数据集中选取2 ...
- sql 数据库中只靠一个数据,查询到所在表和列名
有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,在网上搜了一下,找到一个比较好的方法,通过一个存储过程实现的.只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名. 前提是要将 ...
- Intent 隐式跳转,向下一个活动传递数据,向上一个活动返回数据。
一.每个Intent只能指定一个action,多个Category. 使用隐式跳转,我们不仅可以跳转到自己程序内的活动,还可以启动其他程序的活动.使得Android多个程序之间的功能共享成为可能. 例 ...
- datagrid数据导出到excel文件给客户端下载的几种方法
方法一:导出到csv文件,存放在服务器端任一路径,然后给客户下载 优点: 1.可以进行身份认证后给客户下载,如果放到非web目录就没有对应的url,客户无法随时下载. 2.也是因为生成了文件,所以占用 ...
- 9-51单片机ESP8266学习-AT指令(单片机采集温湿度数据通过8266发送给AndroidTCP客户端显示)
http://www.cnblogs.com/yangfengwu/p/8798512.html 补充:今天答应了一个朋友写一下如果单片机发过的是字符串应该怎么解析,答应了今天写,哦哦哦是明天了,闲话 ...
- 数据库中取出YYYY-mm-dd H:i:s的数据怎么将其转化成YYYY/mm/dd格式,另外,怎么将一个数据表中的数据插入另一个数据表
sql语句是select left(replace(rq,'-','/'),10) as rq from 表名 tp5.1中的写法 $res = Db::table('表名') ->field ...
- C#-数据库访问技术 ado.net——创建 数据库连接类 与 数据库操作方法 以及简单的数据的添加、删除、修改、查看
数据库访问技术 ado.net 将数据库中的数据,提取到内存中,展示给用户看还可以将内存中的数据写入数据库中去 并不是唯一的数据库访问技术,但是它是最底层的数据库访问技术 1.创建数据库,并设置主外键 ...
- aJax提交——服务端不能用request存储数据,session存数据客户端可以接收到
aJax提交与普通提交是两种迥异的提交方式,这两种提交方式决定了客户端与服务端交互时存储.传输数据的方式也不同. aJax提交,客户端的请求数据存储在data中,服务端用request.getPara ...
- 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...
随机推荐
- Linux下安装setup tools小工具
1, 最小化的linux系统(centos\redhat)默认都是没有安装setup图形小工具的,你输入setup命令会提示 command not found . 如果要使用这个命令安装方法 1.安 ...
- JSP 自定义标签
0 标签技术的API继承体系 1 作用 jsp自定义标签用于移除页面中的java代码 2 实现 2.1 标签处理类ViewIPTag.java package com.zsm.util; import ...
- oss cmd
osscmd是基于python 2.5.4(其他版本没有试过),用来操作OSS的,可使用命令行来上传和下载文件. 下载地址:http://storage.aliyun.com/leo/osscmd.t ...
- Struts2源码浅析-ConfigurationProvider
ConfigurationProvider接口 主要完成struts配置文件 加载 注册过程 ConfigurationProvider接口定义 public interface Configurat ...
- Jenkins入门总结
Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作 在网上貌似没有找到Jenkins的中文的太多的文 ...
- 【转】Flume日志收集
from:http://www.cnblogs.com/oubo/archive/2012/05/25/2517751.html Flume日志收集 一.Flume介绍 Flume是一个分布式.可 ...
- java的集合框架最全详解
java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...
- 配置red hat的ip 自动地址
三个文件: 需要配置的内容包括: nameserver dns, hostname和gateway, ip地址等等. /etc/resolv.conf中配置dns, 这个也可以在 sysconfig/ ...
- MySQL中concat函数(连接字符串)
MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...
- 成功的背后!(给所有IT人)
转载:来自CSDN第一名博主:http://blog.csdn.net/phphot/article/details/2187505 成功的背后,有着许多不为人知的故事,而正是这些夹杂着泪水和汗水的过 ...