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修改数据表内容
URL网址:http://azwzsj.com/article/doeshgj.html