php processes a large amount of data. Each time a piece of data is processed, it is returned to the client to display the current status. method.
Similar to dedecms to generate static pages
Thoughts:
1. The client sends a request
2. The server accepts the request and starts counting the amount of data to be processed
3. Arrange the required processing data according to certain rules and send it to the server processing end
4. The server processing side processes the first data, and sends the processing result to the client after certain processing
5. The client receives the result and automatically displays and sends the processing result to the server
6. The server receives the processing result and forwards it to the server processing terminal
7. The processing end continues to process the results...
8. Repeat steps 4-7 until the processing is completed
Experimental process:
1. Create database and tables
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. Add data to the table (not examples)
3. Create index.html client, a.php server 1, b.php server 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');
The above is what the editor shared with you how to use PHP to process database data, return the data to the client and display the current status. I hope it will be helpful to everyone!