网站首页 > 文章中心 > 其它

php按次处理数据

作者:小编 更新时间:2023-08-18 12:50:14 浏览量:16人看过

php批量数据处理问题

没看到你的全选按纽呢?

不过这个问题 跟php代码没关系哈

你先做下静态的全选功能吧

PHP多次访问数据库,是否有优化方案

我只针对你这个做优化吧..

第一个不要用select * 这样的sql语句,你需要什么字段就写哪些字段

都需要的话,你都写出来,select * 效率很低的..

第二个如果说你的后台中对这些数据的变动不是很频繁

然后你可以将查询结果存入memcahe中

我写一段伪代码

$mem_key="all";

$res = $memcache-get($mem_key);

//如果没有存入memcache中

if (empty($res){

//sql语句可以用left jion on关联查询

$bb=$mysql-_query($aaa);

while(!!$_rows=$mysql-_fetch_array_list($bb)){

//do something

$res ....

}

//结果存入memecahed中

$memcache-set($mem_key,$res,0,超时时间);

$res就是你获取的结果..

你这段代码基本可以这样..

php处理数据的问题

php

$str = HHH

region=BJ

region=XA

region=CD

region=GZ

region=WH

region=NJ

region=SH

region=SY

region=MISC

region=CIS

region=TTN

HHH;

$reg = '/(?=region=)(\w+)(.+?)(?=region=)/s';

preg_match_all($reg, $str, $matches);

$result = array();

foreach($matches[1] as $key=$val)

{

$header = array("$val");//BJ

$result[] = array_merge($header, $body);//merge array

//match last

$result[] = $tmp;

echo 'hr';

//换行符不知怎么弄的,就是找不到,所以多出了空格.

求 php 循环执行大量数据 解决办法.

最好是换种方式实现,不要通过网页进行采集.

可以非常简单的在数据库的表,创建一个采集队列,后台执行一个crontab的计划任务,去完成队列里的采集任务.

php处理大量数据时,运行到一定时间就中断了,请问如何解决

你可以先看看每次中断是固定时长,还是固定次数;也可以多打日志,每次循环都输出些参考参数如循环条件、内存使用等信息,再分析哪些可能导致程序中断的原因.

php处理大文件文件

日志文件(access.log)格式:

配置文件cfg.php:

define(HOST,'localhost');//主机名

define(USER,'root');//数据库账号

define(PASS,'111111');//数据库密码

define(DBNAME,'test');//所用的数据库

具体代码test.php:

require?'./cfg.php';

$link?=?mysql_connect(HOST,USER,PASS)?or?die('连接数据库失败');

//程序中自动建库和建表,这样一定程度上拖慢了程序的速度

//创建数据库

$crdb="create?database?if?not?exists?".DBNAME;

if(!mysql_query($crdb)){

die('创建数据库失败');

//链接数据库

mysql_select_db(DBNAME)?or?die('选择数据库失败');

mysql_set_charset(CHARSET);

//数据循环建表

if($i10){

}else{

$tbhz=$i;

$ctbsql="create?table?if?not?exists?logininfo_{$tbhz}(

id?int?not?null?auto_increment?primary?key,

zoneid?int?not?null?default?0,

bannerid?int?not?null?default?0,

clentid?int?not?null?default?0,

materialid?int?not?null?default?0,

sum?int?not?null?default?0

mysql_query($ctbsql);

//打开文件

$file=fopen("./access.log",'r')?or?die("打开文件失败");

//对文件内容进行循环,直到文件末尾才停止

while?(!feof($file)){

//每次读取一行

$pinfo=parse_url($line);//url信息

$ext=$pinfo['query'];//取得传递的各个参数

$parray=explode('',$ext);//根据分解为数组

//因为分解为数组后并不是要的值,所以要对值进行一次截取,将等号及等号左边的都去掉

foreach($parray?as?$val){

$narray[]=ltrim(strstr($val,'='),'=');

//截取时间的秒数

$time=date('Y-m-d?H',$getmun);//将秒数转化为时间类型.

//得到表后缀

$tbhz=date('H',$getmun);

//echo?$sql;

$res=mysql_query($sql);//执行插入

if(!$res?||?!mysql_affected_rows()0){

die('写入数据库失败');

unset($narray);//循环一次将narray销毁,为下一次循环做准备

//var_dump(parse_url($line)['query']);

fclose($file);//关闭

//因为sum字段还是0,下面代码段需要处理sum字段的值

//该sql语句是把同一个小时内,并且符合条件相等的登陆的总次数和需要的登陆信息查出,为下面修改sum做准备

$sql="SELECT?COUNT('zoneid')?AS?sum,zoneid,bannerid,clentid,materialid,redirect,user_agent,utrace?FROM?logininfo_{$tbhz}?GROUP?BY?zoneid,bannerid,clentid,materialid,redirect,user_agent,utrace";

//发送查询sql

$res=mysql_query($sql);

if($res?mysql_num_rows($res)0){

while($row=mysql_fetch_assoc($res)){

//修改sum字段,即同一小时内的登陆次数

$upsql="update?logininfo_{$tbhz}?set?sum='{$row['sum']}'?where?zoneid='{$row['zoneid']}'?and?bannerid='{$row['bannerid']}'?and?clentid='{$row['clentid']}'?and?materialid='{$row['materialid']}'?and?redirect='{$row['redirect']}'?and?user_agent='{$row['user_agent']}'?and?utrace='{$row['utrace']}'";

//发送修改sql,执行修改sum

$upres=mysql_query($upsql);

if(!$upres){

die('修改登陆sum失败');

echo?'数据成功入表';

使用说明:

将配置文件cfg.php中的连接数据库账号、密码修改为自己本机的(默认新增的库名是test)

直接运行test1.php

以上就是土嘎嘎小编为大家整理的php按次处理数据相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章