如何以多行格式保存用户名和user_id

时间:2015-04-21 22:43:27

标签: php mysql arrays for-loop foreach

我正在使用多行插入...一切都可以,多行全部保存到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&uacute;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个产品)

这里使用最后两个插入数据进行捕获......第一个是正常的,但第二个在第三行中是空的:

last two data

1 个答案:

答案 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