使用PHP处理数据库数据如何将数据返回客户端并显示当前状态_PHP
May 28, 2016 am 11:48 AMphp处理大量数据,每处理一个数据返回客户端显示当前状态的方法。
类似于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处理数据库数据如何将数据返回客户端并显示当前状态,希望对大家有所帮助!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Bagaimana untuk mengalih keluar berita dan kandungan sohor kini daripada Carian Windows 11

Mod siap sedia iOS 17 menukarkan iPhone yang sedang mengecas menjadi hab rumah

Panduan Pengguna Windows 11: Bagaimana untuk melumpuhkan pop timbul iklan

Sebab dan penyelesaian untuk susun atur desktop dikunci

Cara membuat sambungan desktop jauh memaparkan bar tugas pihak lain

Bagaimana untuk memaparkan kata laluan wifi kod QR? Adalah disyorkan untuk mengimbas kata laluan wifi di WeChat dalam masa 3 saat.

Samsung akan menyediakan paparan untuk set kepala MR Microsoft, dan peranti itu dijangka lebih ringan dan mempunyai paparan yang lebih jelas

Cara menghidupkan kapsyen langsung dalam Windows 11
