资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

php换一批数据 php修改数据表内容

Thinkphp怎么批量更新数据

thinkphp批量更新数据可以参考如下三种方法:

成都创新互联是专业的网站建设公司,提供网站建设,网站制作,网站设计等网站开发一体化解决方案;包括H5高端网站建设,微信小程序开发,网站定制,企业网站建设,商城建设,成都响应式网站建设公司,建网站,PHP网站建设,软件开发,软文推广,网站营销。欢迎做网站的企业前来合作洽谈,成都创新互联将竭诚为您服务!

方法一:

//批量修改 data二维数组 field关键字段 参考ci 批量修改函数 传参方式

function batch_update($table_name='',$data=array(),$field=''){

if(!$table_name||!$data||!$field){

return false;

}else{

$sql='UPDATE '.$table_name;

}

$con=array();

$con_sql=array();

$fields=array();

foreach ($data as $key = $value) {

$x=0;

foreach ($value as $k = $v) {

if($k!=$field!$con[$x]$x==0){

$con[$x]=" set {$k} = (CASE {$field} ";

}elseif($k!=$field!$con[$x]$x0){

$con[$x]=" {$k} = (CASE {$field} ";

}

if($k!=$field){

$temp=$value[$field];

$con_sql[$x].= " WHEN '{$temp}' THEN '{$v}' ";

$x++;

}

}

$temp=$value[$field];

if(!in_array($temp,$fields)){

$fields[]=$temp;

}

}

$num=count($con)-1;

foreach ($con as $key = $value) {

foreach ($con_sql as $k = $v) {

if($k==$key$key$num){

$sql.=$value.$v.' end),';

}elseif($k==$key$key==$num){

$sql.=$value.$v.' end)';

}

}

}

$str=implode(',',$fields);

$sql.=" where {$field} in({$str})";

$res=M($table_name)-execute($sql);

return $res;

}

//测试

function test(){

$update_array=array();

for ($i=2; $i 7 ; $i++) {

$data=array();

$data['id']=$i;

$data['memeber_type']=2;

$data['memeber_type_state']=1;

$update_array[]=$data;

}

$res=$this-batch_update('yl_member',$update_array,id);

var_dump($res);

}

方法二:

即是循环一条一条的更新记录。一条记录update一次,这样性能很差,也很容易造成阻塞。

那么能不能一条sql语句实现批量更新呢?mysql并没有提供直接的方法来实现批量更新,但是可以用点小技巧来实现。

UPDATE categories

SET display_order = CASE id

WHEN 1 THEN 3

WHEN 2 THEN 4

WHEN 3 THEN 5

END

WHERE id IN (1,2,3)

这句sql的意思是,更新display_order 字段,如果id=1 则display_order 的值为3,如果id=2 则 display_order 的值为4,如果id=3 则 display_order 的值为5。

即是将条件语句写在了一起。

这里的where部分不影响代码的执行,但是会提高sql执行的效率。确保sql语句仅执行需要修改的行数,这里只有3条数据进行更新,而where子句确保只有3行数据执行。

如果更新多个值的话,只需要稍加修改:

UPDATE categories

SET display_order = CASE id

WHEN 1 THEN 3

WHEN 2 THEN 4

WHEN 3 THEN 5

END,

title = CASE id

WHEN 1 THEN 'New Title 1'

WHEN 2 THEN 'New Title 2'

WHEN 3 THEN 'New Title 3'

END

WHERE id IN (1,2,3)

实际运用

$display_order = array(

1 = 4,

2 = 1,

3 = 2,

4 = 3,

5 = 9,

6 = 5,

7 = 8,

8 = 9

);

$ids = implode(',', array_keys($display_order));

$sql = "UPDATE categories SET display_order = CASE id ";

foreach ($display_order as $id = $ordinal) {

$sql .= sprintf("WHEN %d THEN %d ", $id, $ordinal);

}

$sql .= "END WHERE id IN ($ids)";

echo $sql;

方法二不建议使用。

方法三:

/*

* @param $saveWhere :想要更新主键ID数组

* @param $saveData :想要更新的ID数组所对应的数据

* @param $tableName : 想要更新的表明

* @param $saveWhere : 返回更新成功后的主键ID数组

* */

public function saveAll($saveWhere,$saveData,$tableName){

if($saveWhere==null||$tableName==null)

return false;

//获取更新的主键id名称

$key = array_keys($saveWhere)[0];

//获取更新列表的长度

$len = count($saveWhere[$key]);

$flag=true;

$model = isset($model)?$model:M($tableName);

//开启事务处理机制

$model-startTrans();

//记录更新失败ID

$error=[];

for($i=0;$i$len;$i++){

//预处理sql语句

$isRight=$model-where($key.'='.$saveWhere[$key][$i])-save($saveData[$i]);

if($isRight==0){

//将更新失败的记录下来

$error[]=$i;

$flag=false;

}

//$flag=$flag$isRight;

}

if($flag ){

//如果都成立就提交

$model-commit();

return $saveWhere;

}elseif(count($error)0count($error)$len){

//先将原先的预处理进行回滚

$model-rollback();

for($i=0;$icount($error);$i++){

//删除更新失败的ID和Data

unset($saveWhere[$key][$error[$i]]);

unset($saveData[$error[$i]]);

}

//重新将数组下标进行排序

$saveWhere[$key]=array_merge($saveWhere[$key]);

$saveData=array_merge($saveData);

//进行第二次递归更新

$this-saveAll($saveWhere,$saveData,$tableName);

return $saveWhere;

}

else{

//如果都更新就回滚

$model-rollback();

return false;

}

}

在测试方法中调用:

public function test(){

//要更新的数据表的主键数组

$where['ID']=array(70,73,74,80,83);

//ID主键数组对应的待更新数据

$save=array(

array('School'='DK Univisity01','isExport'=0),

array('School'='DK Univisity02','isExport'=0),

array('School'='DK Univisity03','isExport'=0),

array('School'='DK Univisity04','isExport'=0),

array('School'='','isExport'=0),

// array('School'=' Univisity05','isExport'=0),

);

$f=$this-saveAll($where,$save,'want');

if(count($f['ID'])0){

//返回更新成功的ID数组

echo "This is success :/br";

dump($f);

echo 'ok';

}else{

//更新失败操作

echo "This is failed :/br";

dump($f);

echo 'error';

}

}

php商城 换一批 功能怎么做

1.预先设置好几批,点击的时候只显示其中一批,其他的都隐藏;

2.或者类似于点击后下一页的功能,不过这个需要ajax来做;

3.也可以用array_rand()随机获取几条来显示,点击后再随机。

换一批怎么写

jquery换一批的写法 原创

2017-07-22 14:33:30

「已注销」

码龄10年

关注

jquery换一批的写法

$('.huanyipi').on('click',function () {

var currentindex=parseInt($(this).attr('currentindex'));

var count=parseInt($(this).attr('count'));

currentindex++;

if(currentindexcount){

currentindex=1;

}

$(this).attr('currentindex',currentindex);

$('.bufenlist').css('display','none');

$('.bufen'+currentindex).fadeIn();

})

点一次一次currentindex+1 来判断 就行了

查看原文:

打开CSDN APP,看更多技术内容

前端控件之Jquery datetimepicker的使用总结 - this_ITBoy的博客 - CS...

在介绍jquery datetimepicker的使用方法前,我们先来看一下它的实现效果图,这样以便让你更快地了解它是否是你所需要的。 下面我截了四张常用的效果图(截取自 ),另外在这里我只总结了几个...

继续访问

JS实现总价随数量变化而变化(顾客购买商品表单) - 壹言——越过山丘...

用js简单实现商品数量的选购、小计的计算以及总的价钱数、总的商品数量等一系列操作。代码如下:题设的主体HTML代码如下:(以作事例)body ul id... 来自: Freya_yyy的博客 jq、js选择物品实时计算价格 ...

继续访问

jQuery模拟京东或淘宝首页换一批(猜你喜欢)栏目切

效果描述: 在大型购物网站,比如淘宝或者京东首页,我们经常看到首页或者个人中心页面有一组栏目 叫做“猜你喜欢”或者“换一批”类似的风格 今天给大家推荐个前端部分,希望对懒人有用处 使用方法: 1、将CSS样式拷贝到你的网页中 2、将body中需要的代码部分拷贝到你需要的地方即可 (注意保持文件路径的正确性)

使用jQuery实现点击价格按钮实现商品列表的升序和降序

实现点击价格按钮进行排序,个人建议由后台提供的数据进行处理升序、降序。这里通过前台的jQuery处理升降序。代码:$(function () { var a = 0; $("#s1").click( function () { a++; //console.log("hello");//显示消息,不影响页面的加载 ...

继续访问

穿梭框:HTML5 select 标签模拟穿梭框 - 小小阳 - CSDN博客

jq穿梭框实现,vue等框架可直接使用 - seanxwq的博客 - CSDN博客 11-6 先看效果,穿梭框内选项可左右,上下移动: 接着是实现(vue,可将关键代码摘取...基于bootstrap的jQuery左右移动多选框插件 multiselect - 沈荣荣的博客(从这里启...

继续访问

商品sku,N规格js实现 - qq_26465717的博客 - CSDN博客

首先是最顶部三级联动,很简单的,百度也有插件,博主自己jq... 来自: maxianfeng0910的博客 前端angular 实现sku商品 297 HTML: 已选 {{formatNowSKUattr}} , {{numbercode}}件 数量 {{numbercode}... 来自: 阿龙的博客 php...

继续访问

PHP 记录访客的浏览信息

可以记录访客的地理位置,操作系统,浏览器,IP,时间和访问的文件。 1.首先创建一个comm_function.php文件: ?php //echo $_SERVER['HTTP_USER_AGENT']; //echo "".$_SERVER ['REMOTE_ADDR']; /** * 获取客户端类型,手机还是电脑,以及相应的操作系统类型。 * * @param string $

继续访问

最新发布 html 实现商品添加减少,jq实现点击增加或者减少商品数量并且自动计算总价格...

本文将为点击增加或者减少商品数量并且自动计算总价格相关教程,具体实例代码请看下文:点击增加或者减少商品数量并且自动计算总价格:本章节介绍一下如何实现点击按钮来添加或者删除商品的数量,并且能够自动计算商品的总价格。代码实例如下:织梦者span{color:red;cursor:pointer;}$(function(){$("#quantity").keyup(function(){if(isNaN...

继续访问

仿淘宝、京东多重商品属性组合Sku标签 - 大脸猫s的博客 - CSDN博客

JQ或JS仿京东淘宝属性规格SKU样式 生成表格 .hide {display: none;} .mt10 {margin-top: 10px;} .control-gro...想对作者说点什么? 我来说一句 商品SKU选择实现 01-11 493 商品SKU选择js实现 ...

继续访问

JQ实现星星评价(带半星) - a610616898的博客 - CSDN博客

JQ实现星星评价效果 今天要写一个评价功能,然后想了一下,把代码记录下来吧 需要用到的图片 css代码 ul { padding-left: 0; overflow: hidden; } ul li { float: left; list-style: none; width: 20px; height: 20px; }...

继续访问

jquery 换一批 数据是用freemarker查询的 一共查询出来九条数据

1.首先是xhtml页面怎么写的  我页面用的是freemarker 

继续访问

换一批: 点击换数据

可以根据数据的长度来改变需要的数据需求,js实现换一批,可以根据数据的长度来改变需要的数据需求,js实现换一批,可以根据数据的长度来改变需要的数据需求,js实现换一批,

jQuery换一批

!doctype html html head meta charset="utf-8" titlejQuery换一批/title script src=""amp

继续访问

JS小功能系列1换一批

style * { margin: 0; padding: 0; } li { list-style-type: none; } .l { float: left; ...

继续访问

js换一批功能的实现

在写这篇文章之前,我曾经也在网上找了很多换一批功能实现的方法文章,基本上都是一样的 但是这个代码有个bug,也就是你点击第一轮结束进入第二轮的时候,需要点击2次才进入正常的状态。后来我才发现,是有个地方没判断好 需要在这个地方加上这个判断才可以,以下附上完善的代码 var changeindex=1;var clickindex=2;$("#guess-c...

继续访问

jquery 换一批

!doctype html html head meta charset="utf-8" titlejQuery换一批(原创)-jq22.com/title script src="...

继续访问

jQuery仿天猫商品品牌图片墙换一批动画特效

一款仿天猫商品品牌图片墙换一批jQuery动画特效代码。

jQuery模拟京东或淘宝首页换一批(猜你喜欢)栏目切换.zip

效果描述: 在大型购物网站,比如淘宝或者京东首页,我们经常看到首页或者个人中心页面有一组栏目 叫做“猜你喜欢”或者“换一批”类似的风格 今天给大家推荐个前端部分,希望对懒人有用处 使用方法: 1、将CSS样式拷贝到你的网页中 2、将body中需要的代码部分拷贝到你需要的地方即可 (注意保持文件路径的正确性)

换一批功能的实现jquery

获取数据源以后,利用jquery实现每次点击切换不同的展示内容,知道数据全部展示之后,再重新开始刷新抓取

jquery换一批代码

jquery换一批代码是实现,点击换一批处

如何用php修改数据库中的数据

举例如下:

创建userinfo_update.php页面用于查询用户信息,先显示信息,在修改:

先通过GET获取用户编号查询用户信息:

$sql = "select * from user_info where user_id='".$_GET['userId']."'";

$result = mysql_query($sql,$con);

if($row = mysql_fetch_array($result)){

}

页面效果:

创建update.php文件,用于修改用户信息:

使用到了mysql_affected_rows() 函数返回前一次 MySQL 操作所影响的记录行数。

//通过post获取页面提交数据信息

$userId = $_POST[userId];

$userName = $_POST[userName];

$userAge = $_POST[userAge];

$sql = "update user_info set user_name='".$userName."',user_age=".$userAge." where user_id='".$userId."'";

mysql_query($sql,$conn);//执行SQL

$mark  = mysql_affected_rows();//返回影响行数

$url = "userinf_select.php";

运行结果

创建delete.php文件,完成删除用户信息功能:

$userId = $_GET['userId'];

include 'connection.php';

$sql = "delete from user_info where user_id='".$userId."'";

mysql_query($sql,$con);

$mark  = mysql_affected_rows();//返回影响行数

if($mark0){

echo "删除成功";

}else{

echo  "删除失败";

}

mysql_close($con);

运行结果:


分享名称:php换一批数据 php修改数据表内容
本文链接:http://cdkjz.cn/article/doeshgj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220