我正在使用多行插入...一切都可以,多行全部保存到DB但现在我在DB中添加了3行,两个用于标识用户(username和user_id),一个用于链接表单中创建的所有产品进行更新(ref_compra)...所以问题是因为这三行不像其他项一样保存X次,只保存一次。
问题是,所有产品都在数组中以“n”次形式添加,但是这三个输入(ref_compra,id_user和nombre)因为它们只是形式中的一次并且没有添加“n” “单击按钮保存时的其他输入次数,数组只捕获一次...你知道如何添加以保存数据库中的”n“次,就像另一次输入一样
这部分是在表单的开头,是ref_compra名称的输入:
<div class="input-group">
<div class="input-group-addon">#</div>
<input type="text" class="form-control required" name="ref_compra[]" id="ref_compra" placeholder="número de factura de compra" required >
</div>
此处包含问题的表单的第二部分位于表单的最后部分:
<p>
<div class="btn-group btn-block">
<input type="hidden" name="action" value="create" />
<input type="hidden" id="nombre" name="nombre[]" type="text" value="<?php echo $userInfo['username']; ?>" />
<input type="hidden" id="id_user" name="id_user[]" type="text" value="<?php echo $userInfo['user_id']; ?>" />
<button type="button" class="btn btn-danger" onclick="goBack()"><i class="glyphicons glyphicons-left_arrow"></i> <?php echo ASLang::get('Back to the purchase list'); ?></button>
<input type="submit" id="submit" class="btn btn-info" value="<?php echo ASLang::get('Add purchase'); ?>" />
</div>
</p>
这里是插入代码:
$conn->beginTransaction();
$sql = "INSERT INTO PRODUCTOS
(cod, nombreProd, .......... , id_user, nombre, ref_compra)
VALUES ";
$insertQuery = array();
$insertData = array();
foreach ($_POST['cod'] as $i => $cod) {
$insertQuery[] = '(?, ?, ........ , ?, ?, ?)';
$insertData[] = $_POST['cod'][$i];
$insertData[] = $_POST['nombreProd'][$i];
..........
$insertData[] = $_POST['id_user'][$i]; // here the user_id
$insertData[] = $_POST['nombre'][$i]; // here the username
$insertData[] = $_POST['ref_compra'][$i]; // here the ref_compra
}
if (!empty($insertQuery)) {
$sql .= implode(', ', $insertQuery);
$stmt = $conn->prepare($sql);
$stmt->execute($insertData);
}
$conn->commit();
我需要知道为什么这三个项目没有像其他保存“X”次的数据一样保存(3,6,10个产品)
这里使用最后两个插入数据进行捕获......第一个是正常的,但第二个在第三行中是空的:
答案 0 :(得分:0)
With the help of AccessibilityObject
I fix it, now I can save any row in multiple value form.
Here the Answer:
So you have a single userID you want to INSERT for each product record. I can probably provide a better answer if you post the output of print_r($_POST), but basically in your foreach $POST loop, keep the user ID static:
@Dan08
Here the link: answer for an static value's in multiple value form