当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-07-10 10:52:00 浏览: 评论:0 

这篇文章给大家介绍使用php处理大量数据,每处理一个数据返回客户端显示当前状态的方法,对PHP处理数据库数据返回客户端并显示当前状态的相关知识感兴趣的朋友一起学习吧。

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

类似于dedecms生成静态页

想法:

1.客户端发送请求

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

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

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

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

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

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

8.循环4-7步骤,直到处理完毕

实验过程:

1.创建数据库和表

  1. create databases handle; 
  2. create table user
  3. id int unsigned not null auto_increment primary key
  4. name varchar(8), 
  5. sex tinyint(1) default '1'
  6. score int not null
  7. state tinyint(1) 
  8. ); 

2.向表中添加数据(不示例)

3.创建index.html客户端,a.php服务端1,b.php服务端2

Index.html:

  1. <!DOCTYPE html> 
  2. <html lang="en"> 
  3. <head> 
  4. <meta charset="UTF-8"> 
  5. <title>客户端</title> 
  6. </head> 
  7. <body> 
  8. <button onclick="send('a.php?state=0')">开始请求</button> 
  9. <div style="position: fixed;width: 500px;height: 300px;top: 100px;background: gray"> 
  10. <span style="color: white;font-size: 20px;"></span> 
  11. </div> 
  12. <script type="text/javascript" src="./jquery-1.10.2.min.js"></script> 
  13. <script type="text/javascript"> 
  14. //创建一个模态框 
  15. function display(value){ 
  16. $('span').html(value); 
  17. //ajax 
  18. function send(dizhi){ 
  19. $.ajax({ 
  20. type: "get", 
  21. url: dizhi, 
  22. success: function(msg){ 
  23. var arr=JSON.parse(msg); 
  24. console.log(arr); 
  25. //alert(arr.value); 
  26. var tishi="已经处理 "+arr.now +"个,共"+arr.all+"个"; 
  27. display(tishi); 
  28. if(arr.now!=arr.all){ 
  29. send("a.php?now="+arr.now+"&all="+arr.all); 
  30. }else{ 
  31. alert("完成!"); 
  32. }); 
  33. </script> 
  34. </body> 
  35. </html> 

a.php:

  1. <?php 
  2. require('./dbconfig.php'); 
  3. $link=mysql_connect(HOST,USER,PASS) or die('数据库链接失败'); 
  4. mysql_select_db(DBNAME); 
  5. /* 
  6. 查询数据 
  7. $sql="select * from user"; 
  8. $result=mysql_query($sql); 
  9. $row=mysql_fetch_assoc($result); 
  10. var_dump($row); 
  11. */ 
  12. /* 
  13. 循环插入 
  14. for($i=3;$i<=100;$i++){ 
  15. $sql= "insert into user(name,score,state) values('z".$i."',".$i.",1)"; 
  16. mysql_query($sql); 
  17. } 
  18. */ 
  19. /*查询需要处理的数据总数*/ 
  20. //isset($_GET['state'])?$_GET['state']:0; 
  21. if(isset($_GET['state'])){ 
  22. $sql="select count(*) from user"
  23. $result=mysql_query($sql); 
  24. $all=mysql_result($result,0); 
  25. $now=0; 
  26. header("Location: b.php?all={$all}&now=0"); 
  27. }else
  28. header("Location: b.php?all={$_GET['all']}&now={$_GET['now']}"); 
  29. /*返回当前处理的数据*/ 

b.php:

  1. <?php 
  2. require('./dbconfig.php'); 
  3. $link=mysql_connect(HOST,USER,PASS) or die('数据库链接失败'); 
  4. mysql_select_db(DBNAME); 
  5. /*返回当前处理的数据*/ 
  6. //$id=$_GET['id'];//获取将要处理的id 
  7. $now=$_GET['now'];//已经处理的个数 
  8. $all=$_GET['all'];//总共要处理的个数 
  9. $sql="select score from user limit {$now},1"
  10. $result=mysql_query($sql); 
  11. $value=mysql_result($result, 0); 
  12. $now++; 
  13. $arr=array
  14. 'now'=>$now
  15. 'all'=>$all
  16. 'value'=>$value 
  17. ); 
  18. //print_r($arr); 
  19. echo json_encode($arr); 

dbconfig.php:

  1. <?php 
  2. define('HOST','127.0.0.1'); 
  3. define('USER''root'); 
  4. define('PASS','root'); 
  5. define('DBNAME','handle'); 

以上所述是小编给大家分享的使用PHP处理数据库数据如何将数据返回客户端并显示当前状态,希望对大家有所帮助!

Tags: PHP客户端

分享到: