php處理資料庫資料,每處理一個資料返回用戶端顯示目前狀態的方法。

來源:互聯網
上載者:User

標籤:

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);}//ajaxfunction 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:

<?phpdefine(‘HOST‘,‘127.0.0.1‘);define(‘USER‘, ‘root‘);define(‘PASS‘,‘root‘);define(‘DBNAME‘,‘handle‘);

 

以上是全部~

php處理資料庫資料,每處理一個資料返回用戶端顯示目前狀態的方法。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.