在php mysql网站上简单更新外键

时间:2010-10-19 11:03:02

标签: php mysql

嗨,我无法更新其上有外键的表。在此表中,我选择显示其名称,而不是显示外键的主键:这是一个简单的图表: 这是我的外国表:

尺寸表:

sId  sName
1    1x1
2    2x2

品牌表:

bId  bName
1    brand1
2    brand2

供应商表:

sId  sName
1    supp1
2    supp2

所以这是我的仓库表使用连接语句:

pId  pName  pSize pBrand  pSupplier
1    prod1  1x1   brand1  supp1
2    prod2  2x2   brand2  supp2

这是我在php和mysql表单中的编辑:

########### EDIT PRODUCT
if(isset($_POST['editproduct'])){
$product_id=$_POST["product_code"];
$product_name=$_POST["product_name"];       
$size_name=$_POST["size_name"]; 
$brand_name=$_POST["brand_name"];       
$supplier_name=$_POST["supplier_name"];     
$sql = "UPDATE warehouse SET 
product_name='$product_name'
,size_id='$size_id'
,brand_id='$brand_id'
,supplier_id='$supplier_id'
WHERE 
product_code='$product_code'";
$result=mysql_query($sql,$connection) or die(mysql_error());
header("location: warehouse.php");
} ?>

奇怪的是,第一次尝试我编辑表它没有错误。但是第二次,它提示我外键约束的错误,:(

我有一种感觉,因为我在仓库表中使用了一个连接语句,这与我的更新查询冲突,因为我要更新的是主键,我只显示其名称。

1 个答案:

答案 0 :(得分:0)

您在SQL语句中引用变量$ size_id,$ brand_id,$ supplier_id但从未将它们设置在任何位置..

虽然如果您第一次说编辑工作,我猜您可能没有发布所有代码?