[英]how to save username and user_id in multiple row form
我正在使用多行插入...所有行都可以,所有都保存到數據庫中,但是現在我在數據庫中又添加了3行,其中兩行用於標識用戶(用戶名和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個產品)
這是最后兩個插入數據的捕獲...第一個可以,但是第二個在這三行中為空:
借助@Dan08
我對其進行了修復,現在我可以將任何行保存為多值形式。
這里的答案:
因此,您需要為每個產品記錄插入一個用戶ID。 如果您發布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
}
這里的鏈接: 多值形式的靜態值的答案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.