A5下载文章资讯

分类分类

使用PHP处理数据库数据如何将数据返回客户端并显示当前状态

2016-02-17 10:35作者:fang

php处理大量数据,每处理一个数据返回客户端显示当前状态的方法。

类似于dedecms生成静态页

想法:

1.客户端发送请求

2.服务器端接受请求,开始统计所需处理的数据量

3.将所需处理数据按一定规则排列,发送到服务器处理端

4.服务器处理端处理了第一个数据,将处理结果经过一定处理后发送给客户端

5.客户端接收到结果,自动将处理结果显示并发送到服务器

6.服务器接收到处理结果 将它转发到服务器处理端

7.处理端继续处理结果...

8.循环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 '1',

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处理数据库数据如何将数据返回客户端并显示当前状态,希望对大家有所帮助!

展开全部

相关

说两句网友评论
    我要跟贴
    取消