六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 19|回复: 0

把几张相同结构的表放到一个表中,并且去掉重复的。(有级联关系)

[复制链接]

升级  54%

37

主题

37

主题

37

主题

秀才

Rank: 2

积分
131
 楼主| 发表于 2013-2-7 16:02:53 | 显示全部楼层 |阅读模式
<?phpheader("Content-Type:text/html; charset:utf-8");/*表结构:id fid name_ch……把几张相同结构的表放到一个表中,并且去掉重复的。(有级联关系)注意,fid 也是同表父级的id。处理流程:1.先处理最高级的:2.一条条处理,如果一条在目标表存在,则取出id,如果不存在,就插入,取出id,3.同时更新处理表的父级为本条记录的记录的fid*///standard_jgcd standard_lj standard_sj standard_sy$table = "standard_jgcd";//处理表//mysql_connect("202.204.54.212:3306","catalog","catalog");mysql_connect("localhost","root","1");mysql_select_db("cata");mysql_query("set names utf8");//三级,分级处理$i = 0;while($i++<3){$rs = mysql_query("select * from {$table} where rank = {$i}");//分级操作while($row = mysql_fetch_array($rs)){$id = "";$sql = "select * from standard where rank =' {$row[rank]}' and name_ch = '{$row[name_ch]}' and name_en = '{$row[name_en]}' ";//echo $sql."<br/>";$rs1 = mysql_query($sql);$row_num = mysql_num_rows($rs1);if($row_num!= 0){//如果standard表中已经有这条数据,取出它的id,更新处理表table$row1 = mysql_fetch_array($rs1);$id = $row1[id];dump($row1);}else{//如果standard表中没有这条数据,插进去,取出它的id,更新处理表tablemysql_query("insert into standard (name_ch,name_en,rank,fid) values ('{$row[name_ch]}','{$row[name_en]}',{$row[rank]},{$row[fid]})");$id = mysql_insert_id();echo "<br/>insert {$id}<br/>";echo "insert into standard (name_ch,name_en,rank,fid) values (select name_ch,name_en,rank,fid from {$table} where id = {$row[id]})";}//更新table中的父id mysql_query("update {$table} set fid = {$id} where fid = {$row[id]}");echo "<br/>".mysql_affected_rows();echo "<br/>  update {$table} set fid = {$id} where fid = {$row[id]}<br/>";}}function dump($rs){echo "<pre>";print_r($rs);echo "</pre>";}?>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表