嗨,我无法更新其上有外键的表。在此表中,我选择显示其名称,而不是显示外键的主键:这是一个简单的图表: 这是我的外国表:
尺寸表:
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");
} ?>
奇怪的是,第一次尝试我编辑表它没有错误。但是第二次,它提示我外键约束的错误,:(
我有一种感觉,因为我在仓库表中使用了一个连接语句,这与我的更新查询冲突,因为我要更新的是主键,我只显示其名称。
答案 0 :(得分:0)
您在SQL语句中引用变量$ size_id,$ brand_id,$ supplier_id但从未将它们设置在任何位置..
虽然如果您第一次说编辑工作,我猜您可能没有发布所有代码?