从table1获取多个值,将它们更改为基于table2的值,并将结果写入table1

时间:2011-03-17 00:25:57

标签: php mysql


我可以根据另一个列值在mysql数据库中重写列的值,但这次我需要做一个扭曲... 有两个表(一次是多个值):规范产品

产品有两列:specificationidsspecificationorderids
规范还有两列:idspecificationorder

specificationids有多个格式如下:31,29,27,18,
这些也是规范表中的id。每个id都有specificationorder值(同一行,其他列)。现在我想要做的是,我想将id的值与specificationorder的值进行交换,并将这些值写入产品中的specificationorderids表格格式相同。
当然,这个过程必须遍历产品表中的所有ID。

我希望我能让问题清晰明白

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

交换 id 规范订单规范订单,用规范订单编写,如果我理解的话:

<?php
/*  Swap id and specificationorder */
$sql = "SELECT id, specificationorder from specifications";
$result = mysql_query($sql);
while($row = mysql_fetch_row($result))
{
$id = $row[0];
$sporder = $row[1];
$sql = "UPDATE specifications SET id=$id, specificationorder=$sporder WHERE id=$id";
mysql_query($sql);
}

/* specificationorder writen in specificationorderids */
$sql = "SELECT specificationorder from specifications";
$result = mysql_query($sql);
while($row = mysql_fetch_row($result))
{
$sporder = $row[0];
$sql = "INSERT INTO products(specificationorderids) VALUES($sporder)";
mysql_query($sql);
}
?>

答案 1 :(得分:0)

过去几天我还没有能够提出正常的代码,所以到目前为止我已经得到了什么。香港专业教育学院添加了评论,所以你知道我在尝试代码时的想法......就像在我之前的评论中我包含了我想要的图像:img822.imageshack.us/i/specm.png

//get specificationids 
$sql = "SELECT specificationids from products";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$spids = $row[0];

//get specifications
$sql2 = "SELECT id from specifications";
$result2 = mysql_query($sql2);
$row2 = mysql_fetch_row($result2);
$spid = $row2[0];

//get specificationorder
$sql3 = "SELECT specificationorder from specifications";
$result3 = mysql_query($sql3);
$row3 = mysql_fetch_row($result3);
$sporder = $row3[0];

//if the value of specificationids matches a specificationid, then....
while(VALUES($spids)==$spid)
{
$spids=$sporder; //...it should be replaced by the specificationorder
//and then update the specificationorderids column accordingly
$sql = "UPDATE products(specificationorderids) VALUES($spids)";
mysql_query($sql);
}