php同时修改多个mysql表内的多条数据
今天碰到更新多个表问题。因为想同时更改多个用户的表数据,可是这些用户的信息又不在个一表内。一时之间还真有点范难。不过,经过不断的测试,终于通过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 Comment »

收藏了。。啊。。