将连接到foreach循环的数组插入数据库

时间:2016-02-18 22:51:56

标签: php arrays mysqli foreach insert

首先,我对此有点新鲜,并且不知道标题是否正是我所要求的,所以我会用正手道歉。 (我也是瑞典人,所以我的英语可能不完美)。我查看了类似的问题"但到目前为止我还没有找到任何有趣的东西。

我有这个foreach循环:

$i = 0;
foreach($ingredients as $ingredient) {

$ingredient_id = getIngredientId ($link, $ingredient);

if($ingredient_id != false) {
    insertRecipeIngredient($link, $recipe_id, $ingredient_id, $unit, $amount);
} else {
    $ingredient_id = insertIngredient($link, $ingredient);
}
$i++;
}

我使用它在我的数据库中插入配方和成分之间的连接(我想插入该成分的数量和单位):

function insertRecipeIngredient($link, $recipe_id, $ingredient_id) {
mysqli_query($link, "INSERT INTO recipe_ingredients (recipe_id, ingredient_id, unit,
amount) VALUES ('$recipe_id','$ingredient_id', '$unit[$i]', '$amount[$i]'")); }

它表示变量没有定义(单位和数量)。我试图在foreach循环中回显整个事情并且它起作用。所以我认为[$ i]的扩展是正确的,但我不知道如何将它用于INPUT。

echo $amount[$i].' '.$unit[$i].' - '.$ingredient;

因此,配方(id)和配料(id)之间的连接工作正常,但数量和单位并不想进入数据库。

我想如何将这些数组插入数据库?

您还需要更多信息吗?

1 个答案:

答案 0 :(得分:0)

将您的if语句更改为:

if($ingredient_id != false) {
    insertRecipeIngredient($link, $recipe_id, $ingredient_id, $unit, $amount, $i);
}

并更改该功能以接受$unit$amount$i参数

function insertRecipeIngredient($link, $recipe_id, $ingredient_id, $unit, $amount, $i)