php同时修改多个mysql表内的多条数据

添加评论 2010年7月31日
今天碰到更新多个表问题。因为想同时更改多个用户的表数据,可是这些用户的信息又不在个一表内。一时之间还真有点范难。不过,经过不断的测试,终于通过while循环语句解决了这个问题。下面是我同时修改三个表内10条数据(user[]包含了10个用户id)的例子,如果有更多的表按照例子添加即可,还是来看看代码吧:
if ($uids = implode_ids($_POST['user'])) {
//将提交来得的用户id作为数组保存在$uids中,implode_ids是自定义函数,用来处理user
$aids = $a_tatol = 0;
// 定义计数变量
$query = $DB->query(“SELECT u.id,p.pdistribution,p.pwithdraw,w.wwithdraw,w.wyesorno FROM users as u ,profit as p,withdraw as w WHERE u.id=p.uid and p.pid=w.pwid and u.id IN ($uids)”);
//逐一查询10个用户的相关信息
while ($article = $DB->fetch_array($query)) {
//将10个用户的信息作为数组赋值给$article
$pdistribution = $article['pdistribution'] – $article['wwithdraw'];
$pwithdraw     = $article['pwithdraw'] + $article['wwithdraw'];
$xianjin       = $pdistribution – $pwithdraw ;
//信息处理,可以写成自己需要的信息
if ($article['wyesorno'] && $xianjin >= ’0′) {
//条件判断
$a_tatol++;
//计数,该段程序中并未用到,可以去掉,为了省事就直接发上来了
$DB->unbuffered_query(“UPDATE users as u ,profit as p,withdraw as w SET p.pdistribution=’”.$pdistribution.”‘, p.pwithdraw=’”.$pwithdraw.”‘, w.wwithdraw=’0′, w.wwithdate=’0′,w.wreason=’0′,w.wyesorno=’0′ WHERE u.id=p.uid and p.pid=w.pwid and u.id=’”.$article['id'].”‘”);
//根据每个用户不同的id号修改与该用户相关的三个表中数据
}
//end if
}//end while
}
redirect(‘用户信息修改成功’, ‘admin.php’);
//redirect也是自定义函数,用户进行跳转的,可以随便写些东西在上面
} else {
redirect(‘未选择任何用户!’);
}

通过该php语句即可轻松的修改多个mysql表中的数据了,如果还有不明白的可以给我留言。

  1. 2010年8月1日 at 02:45 | #1

    收藏了。。啊。。

  2. 2010年9月28日 at 18:30 | #2

    yeah my dad will like this

  1. 还没有 trackbacks
订阅评论