如何将多个输入同名添加到数据库MySQL

时间:2014-04-01 11:40:21

标签: php mysql

您好我想在我的数据库中添加许多具有相同名称的输入。

我正在处理食谱提交表单,其中添加了表单输入文本的成分。我有多个具有相同名称的输入,并希望将它们全部添加到数据库中。通过某种数组。

我有一个jquery可以添加更多的成分和数量,不要认为它对这个问题很重要。所以不会添加。

直到现在我有这个html / php:

<form id="opskriftReg" name="opskriftReg" action="opskriftRegSave.php" method="post">

*Ingredienser:<br>

Ingrediens: <input type="text" name="ingredients[]"> 
Mængde: <input type="text" name="amount[]"><br>

<div id="InputsWrapper"></div>

<input type="button" id="AddMoreFileBox" value="Tilføj ingrediens"><br>

<input type="submit" value="Submit">

</form>

这对于php /数据库输入:

$mysqli = new mysqli ("localhost","","","brugerreg");

//Add this php add to database: 
$ingredients = $_POST['ingredients'];
$amount = $_POST['amount'];

echo $ingredients." ".$amount;

$sql = "INSERT INTO `brugerreg`.`opskriftreg` (`ingredients`,
`amount`) VALUES ('".$ingredients."', '".$amount."')"; 

$stmt = $mysqli->prepare($sql); $stmt->execute();

2 个答案:

答案 0 :(得分:2)

让您的jQuery打印您的输入,例如:

<input type="text" name="ingredients[]"> 
<input type="text" name="amount[]">

请注意名称中的[],这些名为HTML输入数组。

现在您可以在PHP中访问这些输入:

$ingredients = implode(',',$_POST['ingredients']);
$amount = implode(',',$_POST['amount']);
echo $ingredients."<br>".$amount; //you could comment this
$sql = "INSERT INTO `brugerreg`.`opskriftreg` (`ingredients`,
`amount`) VALUES ('".$ingredients."', '".$amount."')"; 
$stmt = $mysqli->prepare($sql); $stmt->execute();

您可以使用 implode() 函数将数组转换为带分隔符的单个字符串

答案 1 :(得分:0)

找到 here

每次添加具有相同名称的新输入时,请将其附加“[]”,最后得到:

Ingrediens: <input type="text" name="ingredients[]"> 
Mængde: <input type="text" name="amount[]"><br>
Ingrediens: <input type="text" name="ingredients[]"> 
Mængde: <input type="text" name="amount[]"><br>
Ingrediens: <input type="text" name="ingredients[]"> 
Mængde: <input type="text" name="amount[]"><br>

在php中:

$ingredients = $_POST['ingredients']; // $ingredients is now an array
$amount = $_POST['amount']; // $amount is now an array

echo $amount[0];
echo $amount[1];

要将其插入数据库,只需相应地准备查询,例如迭代数组并连接“('”。$ ingredients。“','”。$ amount。“')”为每一对。

$values = "". 
for ($i = 0; $i < sizeof($amount); $i++) {
    $values .= "('".$ingredients[$i]."', '".$amount[$i]."')";
    if ($i != sizeof($amount) - 1) {
        $values .= ", ";
    }
}


$sql = "INSERT INTO `brugerreg`.`opskriftreg` (`ingredients`,`amount`) VALUES " . $values;