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


Posted in PHP onFebruary 16, 2016

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 相关文章推荐
自动分页的不完整解决方案
Jan 12 PHP
php adodb连接mssql解决乱码问题
Jun 12 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
May 04 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
Apr 09 PHP
数组与类使用PHP的可变变量名需要的注意的问题
Jun 20 PHP
采用memcache在web集群中实现session的同步会话
Jul 05 PHP
Smarty中调用FCKeditor的方法
Oct 27 PHP
php创建session的方法实例详解
Jan 27 PHP
PHP获取当前相对于域名目录的方法
Jun 26 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
Mar 04 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
Jun 06 PHP
基于laravel缓冲cache的用法详解
Oct 23 PHP
PHP的Yii框架入门使用教程
Feb 15 #PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
Feb 15 #PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
Feb 15 #PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
Feb 15 #PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
Feb 15 #PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
Feb 15 #PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
Feb 14 #PHP
You might like
PHP的栏目导航程序
2006/10/09 PHP
php 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
mac os快速切换多个PHP版本的方法
2017/03/07 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
jQuery.fn和jQuery.prototype区别介绍
2013/10/05 Javascript
不要使用jQuery触发原生事件的方法
2014/03/03 Javascript
js实现带简单弹性运动的导航条
2017/02/22 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
微信小程序中button去除默认的边框实例代码
2019/08/01 Javascript
vue多页面项目中路由使用history模式的方法
2019/09/23 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
Python实现的生成自我描述脚本分享(很有意思的程序)
2014/07/18 Python
使用Python的PIL模块来进行图片对比
2016/02/18 Python
python顺序执行多个py文件的方法
2019/06/29 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
2012/11/09 面试题
银行实习生的自我评价
2013/12/09 职场文书
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
畜牧兽医本科生的自我评价
2014/03/03 职场文书
《槐乡五月》教学反思
2014/04/25 职场文书
保护环境倡议书300字
2014/05/19 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
民事答辩状范本
2015/05/21 职场文书
小学音乐课教学反思
2016/02/18 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
Go语言并发编程 sync.Once
2021/10/16 Golang