
方法一:
//批量修改 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]&&$x>0){
$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)
}
$data=array() //创建临时变量用以存储数据$length=count($你的array名['cwidth']) //数你有多少行数据
for($i=0$i<=$length$i++){ //循环
$data[$i]['cwidth']=$你的array名['cwidth']
$data[$i]['cheight']=$你的array名['cheight']
}
出来的数据就像是这样:
array(2){
[0]=>array(2){
['cwidth']=>string(5) "593px"
['cheight']=>string(5) "203px"
}
[1]=>array(2){
['cwidth']=>string(5) "598px"
['cheight']=>string(5) "111px"
}
}
然后再用$db->add($data)插入数据
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)