您好我想在我的数据库中添加许多具有相同名称的输入。
我正在处理食谱提交表单,其中添加了表单输入文本的成分。我有多个具有相同名称的输入,并希望将它们全部添加到数据库中。通过某种数组。
我有一个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();
答案 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;