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

5年以前  |  阅读数:1323 次  |  编程语言:PHP 

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

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
将二进制数据转为16进制以便显示
获取IMSI
获取IMEI
Java生成UUID
PHP自定义函数获取搜索引擎来源关键字的方法
让你成为最历害的git提交人
在Zeus Web Server中安装PHP语言支持
指定应用ID以获取对应的应用名称
再谈PHP中单双引号的区别详解
Python 2与Python 3版本和编码的对比
php+ajax+json 详解及实例代码
Yii2汉字转拼音类的实例代码
php封装的page分页类完整实例
php数组合并array_merge()函数使用注意事项
PHP实现简单爬虫的方法
PHP设计模式之工厂模式与单例模式
php实现数组中索引关联数据转换成json对象的方法
wget使用技巧