if(empty($Errormessage))
{
if(move_uploaded_file($File_Tmp,"product_images/".$File_Name))
{
//To Rename the uploaded file
$Random=rand()*1200;
$File_New_Name=$Random.".".$File_Extension;
rename("product_images/".$File_Name,"product_images/".$File_New_Name);
$Date_Added=date("d-m-Y");
$Query="INSERT INTO products (pro_id,product_name,price,details,product_picture,date_added,last_edited,cat_id) VALUES ('','$Product_Name','$Product_Price','$Product_Details','$File_New_Name','$Date_Added','','$Category')";
$Result=mysql_query($Query);
if($Result)
{
header ("location: addsuccess.php");
}
}
}
//分类
<td><select name="category" size="1" id="select">
<option value="Null">Select Category</option>
<?php
$Select=mysql_query("SELECT * FROM category");
while ($Row=mysql_fetch_array($Select))
{
$Cat_Id=$Row['cat_id'];
$Category_Name=$Row['category_name'];
?>
<option value="$Cat_Id"><?php echo $Category_Name; ?></option>
<?php } ?>
</select></td>
//验证
if($Category=="Null")
{
$Errormessage[]="Category should be selected";
}
cat_id是我的产品表中的FK列...而且cat_id也是类别表中的主键...因为我使这个cat_id成为FK实际上我复制粘贴了alter table add column fk等的语法等...它是让我保存我的记录...我通过传递虚拟值直接在php我的管理员上尝试它..它正在工作。
答案 0 :(得分:0)
尝试:
$Query="INSERT INTO products (pro_id, product_name,price,details,product_picture,date_added,last_edited,cat_id) VALUES (NULL,'$Product_Name','$Product_Price','$Product_Details','$File_New_Name','$Date_Added','',$Category)";
NULL而不是''可能会解决您的问题。此类$ Category现在没有撇号,因为db-column cat_id是一个数字而不是字符串。 (数字不应该用撇号处理。)
$Category=mysql_real_escape_string($_POST['category']);
(你试图逃避字符串,但$ _POST ['category']是数字),所以这不是正确的做法)
应该是这样的:
if (isset($_POST['category'])) {
$Category = $_POST['category'];
}
else {
$Category = 0;
}
同样改变:
?>
<option value="$Cat_Id"><?php echo $Category_Name; ?></option>
<?php } ?>
要
?>
<option value="<?php echo $Cat_Id;?>"><?php echo $Category_Name; ?></option>
<?php } ?>
强烈建议使用PDO或Mysqli。它将为未来节省大量时间和问题。 mysql函数如mysql_query已弃用,将在未来的php版本中删除。
答案 1 :(得分:0)
这就是错误。你的cat_id引用有错误。检查数据库约束。 $ Category被错误地插入。例如。如果cat_id与另一个表连接,则无法使用$ Category插入它。