作者热门文章
- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章使用PHP处理数据库数据如何将数据返回客户端并显示当前状态由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
php处理大量数据,每处理一个数据返回客户端显示当前状态的方法.
类似于dedecms生成静态页 。
想法
1.客户端发送请求 2.服务器端接受请求,开始统计所需处理的数据量 3.将所需处理数据按一定规则排列,发送到服务器处理端 4.服务器处理端处理了第一个数据,将处理结果经过一定处理后发送给客户端 5.客户端接收到结果,自动将处理结果显示并发送到服务器 6.服务器接收到处理结果 将它转发到服务器处理端 7.处理端继续处理结果... 8.循环4-7步骤,直到处理完毕 。
实验过程:
1.创建数据库和表 。
1
2
3
4
5
6
7
8
|
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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
<!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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<?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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?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
1
2
3
4
5
|
<?php
define(
'HOST'
,
'127.0.0.1'
);
define(
'USER'
,
'root'
);
define(
'PASS'
,
'root'
);
define(
'DBNAME'
,
'handle'
);
|
以上所述是小编给大家分享的使用PHP处理数据库数据如何将数据返回客户端并显示当前状态,希望对大家有所帮助! 。
最后此篇关于使用PHP处理数据库数据如何将数据返回客户端并显示当前状态的文章就讲到这里了,如果你想了解更多关于使用PHP处理数据库数据如何将数据返回客户端并显示当前状态的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我是一名优秀的程序员,十分优秀!