<?php
header("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,更新处理表table
mysql_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>";
}
?>