2010-12-10 173 views
0

我有一个配方表和配​​料表,两个表的主键都是自动增量,配方的主键是配料中的外键。我将数据从html发布到php。请注意,我的成分文本框是动态生成的,并成功将数据发布到php脚本。发布的数据是正确的,当我插入这个数据表我的查询工作正常,但数据不会添加到MySQL表。我的代码和输出是插入查询不会插入数据到mysql数据库表

$sql = "insert into recipe (rec_id, Name, Overview,category, Time, Image) values ('', '$name','$overview','$category','$time','$TARGET_PATH')"; 
    $result = mysql_query($sql) or die ("Could not insert data into DB: " . mysql_error()); 
     $rec_id = mysql_insert_id();

和成分

$ingredient = $_POST['ingredient']; 
$amount = $_POST['amount']; 
$integer = 0; 
while (count($ingredient)>$integer) { 
if (($ingredient[$integer] <> "") && ($amount[$integer] <> "")){ 
$sql = "INSERT INTO `cafe`.`ingredients` (`ingredient_id`, `ingredient_name`, `ammount`, `rec_id`,) 
    VALUES ('', '".$ingredient[$integer]."', '".$amount[$integer]."', '$rec_id')"; 
mysql_query($sql); 
echo $sql."
"; } else{ echo "ingredient number ".($integer+1)." is missing values and cannot be inserted."; } $integer = ($integer + 1); }

当我附和了把查询是

nsert into recipe (rec_id, Name, Overview,category, Time, Image) values ('', 'demo recipe','no overview','meal','10/12/10 : 13:02:33','http://www.localhost/cafe/pics/demo.gif') 
INSERT INTO cafe.ingredients (ingredient_id, ingredient_name, ammount, rec_id,) VALUES ('', 'ingredient one', '3gm', '29') 
INSERT INTO cafe.ingredients (ingredient_id, ingredient_name, ammount, rec_id,) VALUES ('', 'ingredient two', '3gm', '29') 
INSERT INTO cafe.ingredients (ingredient_id, ingredient_name, ammount, rec_id,) VALUES ('', 'ingredient three', '3gm', '29')

,但是当我从成分看mysql表或retriew数据有成分中没有数据。

+0

删除cafe你可以请张贴的配方和成分的定义表? – 2010-12-10 08:24:50

+0

`amount`拼写`amount` – 2010-12-10 08:46:58

回答

0

似乎是在代码中的语法错误:

if (($ingredient[$integer] "") && ($amount[$integer] "")) 
          ^^       ^^ 

看起来你缺少一个比较操作。

+0

干草这不是这样实际上它是:如果(($成分[$整数] <> “”)&&($量[$整数] <> “”)) – hunter 2010-12-10 08:20:28

0

当插入犯规罚球异常和犯规插入数据有我想几个选项

1)你的地方使用事务和回滚它 2)您选择的查询是坏的,数据是存在的,但你不选择它

2

你有rec_id后,一个额外的,

删除它,所以它看起来像

INSERT INTO cafe.ingredients (ingredient_id, ingredient_name, ammount, rec_id) VALUES ('', 'ingredient one', '3gm', '29') 

而你,也就OK

0

从查询

$sql = "INSERT INTO ingredients (`ingredient_id`, `ingredient_name`, `ammount`, `rec_id`,) 
    VALUES ('', '".$ingredient[$integer]."', '".$amount[$integer]."', '$rec_id')";