PHP处理大量数据,每处理一个数据返回客户端显示当前状态的方法。
想法:
1.客户端发送请求 2.服务器端接受请求,开始统计所需处理的数据量 3.将所需处理数据按一定规则排列,发送到服务器处理端 4.服务器处理端处理了第一个数据,将处理结果经过一定处理后发送给客户端 5.客户端接收到结果,自动将处理结果显示并发送到服务器 6.服务器接收到处理结果 将它转发到服务器处理端 7.处理端继续处理结果... 8.循环4-7步骤,直到处理完毕
实验过程:
1.创建数据库和表
PHP;">
create databases handle;
create table user(
id int unsigned not null auto_increment primary key,name varchar(8),sex tinyint(1) default '1',score int not null,state tinyint(1)
);
2.向表中添加数据(不示例)
3.创建index.html客户端,a.PHP服务端1,b.PHP服务端2
Index.html:
a.PHP:
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;">
$now,'all'=>$all,'value'=>$value
);
//print_r($arr);
echo json_encode($arr);
dbconfig.PHP:
PHP;">
PHP
define('HOST','127.0.0.1');
define('USER','root');
define('PASS','root');
define('DBNAME','handle');
原文链接:https://www.f2er.com/php/20357.html