重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
//完成你的问题需要先假设几个变量
创新互联建站网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,成都做网站、网站建设,塑造企业网络形象打造互联网企业效应。
//传值的id
$aId = $_GET['id']
//要修改的新check内容
$newCheck = "aaa";
//要在表B中加的数值
$addContent = "20";
//第一个SQL更新表A中的check内容
$sql1 = "UPDATE `A` SET `check`='".$check."' WHERE `aid`=".$_GET['id'];
//第二个SQL获取表B中的相关信息
$sql2 = "SELECT `B`.`bid`,`b`.`score` FROM `A`,`B` WHERE `A`.`name`=`B`.`name` AND `A`.`aid`=".$_GET['id'];
//通过sql2可以得到所要修改的B表中的bid=$bid 和B表中该条记录的score内容=$score。
$newScore = $score.$addContent;
//更新表B中数据
$sql3 = "UPDATE `B` SET `score`='".$newScore."' WHERE `bid`=".$bid;
第一种就是根据事务来实现这个功能,多条更新用事务来实现和回滚
第二种 就是循环更新了,这个不需要数据一致性,即其中一条语句更新失败 不影响其他数据,建议还是用事务
可以同时更新内容相同的记录,比如id=1、2、3的记录的状态都改为0;那么可以使用$db-where("id in(1,2,3)")-save(array('status'=0));
另一个思路你试试:
html:
input type="text" name="A[]" /
input type="text" name="B[]" /
input type="hidden" name="ids[]" value="{$id}" /
php:
?php
$a = $_POST['A'];
$b = $_POST['B'];
$ids = $_POST['ids'];
foreach($a as $k = $v) {
$sql = "update abc set a='{$v}', b='{$b[$k]}' where id='{$ids[$k]}'";
mysql_query($sql);
}
多个提交和一个提交的道理是相同的,只是一些细节上要注意。
提交一个你懂了,我还是提一下,表单是:
form
input type=text name=name
input type=text name=sex
input type=text name=age
input type=text name=address
/form
PHP存数据库的语句是:
$sql="insert into tab(...) values ($_POST[...])";//省略字段和值
那么多个提交的方法一,表单是:
form
input type=text name=name1input type=text name=sex1input type=text name=age1input type=text name=address1
input type=text name=name2input type=text name=sex2input type=text name=age2input type=text name=address2
/form
PHP存数据库语句是:
$sql="insert into tab(...) values ($_POST[...1])";//省略字段和值
mysql_query($sql);
$sql="insert into tab(...) values ($_POST[...2])";//省略字段和值
mysql_query($sql);
上面方法一写的例子是两条,多条的方法相同,技巧就是输出表单使用JS的循环,存盘的PHP代码也可以循环,并且能够判断为空的就不提交,比如表单20条,只填了5条,就只存5条到数据库。
方法二是使用数组,表单:
form
input type=text name=nameinput type=text name=sexinput type=text name=ageinput type=text name=address
input type=text name=nameinput type=text name=sexinput type=text name=ageinput type=text name=address
input type=text name=nameinput type=text name=sexinput type=text name=ageinput type=text name=address
/form
PHP代码是:
for ($i=0;$icount($_POST["name"]);$i++)
if ($_POST["name"][$i]!='')
{
$sql="insert into tab(...) values ($_POST[...][$i])";//省略字段和值
mysql_query($sql);
}
这样表单可以写任意多行,PHP里面是数组,能够自动获取有多少数据。
function updatecols($table,$arr){
$sql = "update ".$table." set ";
$total = count($arr);
$i=1;
foreach($arr as $k=$v){
$sql .= $k."=".$v;
if($i$total){
$sql .= ",";
}
$i++;
}
return $sql;
}
echo updatecols("table1",array('col1'='123','col2'='345'));