如果表单中只有一个值,如何插入多个值
How do I insert multiple value if there is only one value in form
如果我需要保存的输入值只有一次,我需要知道如何在我的数据库中插入或更新发票表单的值?
我有一个发票表格,其中每一行我 select 一个产品,最后我有输入 (user_id) 以及我需要与其余输入一起保存的值
按照示例,我在发票中选择:
10 tomatoes
5 garlics
2 beans
最后是我的 Id (user_id,不是 PRODUCTOS table 唯一的 Id)
Id=1
这是我的 table 的架构,以及如何保存或更新到现在:
| cantidad | nombre del producto | Id |
+------------+---------------------+-------+
| 10 | Tomatoes | 1 |
| 5 | garlics | 0 |
| 2 | beans | 0 |
这是我需要保存或更新的内容:
| cantidad | nombre del producto | Id |
+------------+---------------------+-------+
| 10 | Tomatoes | 1 |
| 5 | garlics | 1 |
| 2 | beans | 1 |
代码如下:
$conn->beginTransaction();
$sql = "INSERT INTO PRODUCTOS
(cantidad, nombreProd, Id)
VALUES ";
$insertQuery = array();
$insertData = array();
foreach ($_POST['cantidad'] as $i => $cantidad) {
$insertQuery[] = '(?, ?, ?)';
$insertData[] = $_POST['cantidad'][$i];
$insertData[] = $_POST['nombreProd'][$i];
$insertData[] = $_POST['Id'][$i];
}
if (!empty($insertQuery)) {
$sql .= implode(', ', $insertQuery);
$stmt = $conn->prepare($sql);
$stmt->execute($insertData);
}
$conn->commit();
谢谢
所以您有一个要为每条产品记录插入的用户 ID。如果你 post print_r($_POST)
的输出,我可能会提供更好的答案,但基本上在你的 foreach $POST
循环中,保持用户 ID 静态:
foreach ($_POST['cantidad'] as $i => $cantidad) {
$insertQuery[] = '(?, ?, ?)';
$insertData[] = $_POST['cantidad'][$i];
$insertData[] = $_POST['nombreProd'][$i];
$insertData[] = $_POST['Id']; //OR $insertData[] = $_POST['Id'][0], depending on $_POST array
}
如果我需要保存的输入值只有一次,我需要知道如何在我的数据库中插入或更新发票表单的值?
我有一个发票表格,其中每一行我 select 一个产品,最后我有输入 (user_id) 以及我需要与其余输入一起保存的值
按照示例,我在发票中选择:
10 tomatoes
5 garlics
2 beans
最后是我的 Id (user_id,不是 PRODUCTOS table 唯一的 Id)
Id=1
这是我的 table 的架构,以及如何保存或更新到现在:
| cantidad | nombre del producto | Id |
+------------+---------------------+-------+
| 10 | Tomatoes | 1 |
| 5 | garlics | 0 |
| 2 | beans | 0 |
这是我需要保存或更新的内容:
| cantidad | nombre del producto | Id |
+------------+---------------------+-------+
| 10 | Tomatoes | 1 |
| 5 | garlics | 1 |
| 2 | beans | 1 |
代码如下:
$conn->beginTransaction();
$sql = "INSERT INTO PRODUCTOS
(cantidad, nombreProd, Id)
VALUES ";
$insertQuery = array();
$insertData = array();
foreach ($_POST['cantidad'] as $i => $cantidad) {
$insertQuery[] = '(?, ?, ?)';
$insertData[] = $_POST['cantidad'][$i];
$insertData[] = $_POST['nombreProd'][$i];
$insertData[] = $_POST['Id'][$i];
}
if (!empty($insertQuery)) {
$sql .= implode(', ', $insertQuery);
$stmt = $conn->prepare($sql);
$stmt->execute($insertData);
}
$conn->commit();
谢谢
所以您有一个要为每条产品记录插入的用户 ID。如果你 post print_r($_POST)
的输出,我可能会提供更好的答案,但基本上在你的 foreach $POST
循环中,保持用户 ID 静态:
foreach ($_POST['cantidad'] as $i => $cantidad) {
$insertQuery[] = '(?, ?, ?)';
$insertData[] = $_POST['cantidad'][$i];
$insertData[] = $_POST['nombreProd'][$i];
$insertData[] = $_POST['Id']; //OR $insertData[] = $_POST['Id'][0], depending on $_POST array
}