【问题标题】:multiple input fields with same name. how to save them all into db具有相同名称的多个输入字段。如何将它们全部保存到数据库中
【发布时间】:2013-09-05 01:23:10
【问题描述】:

我正在尝试存储来自三种不同类型的同名字段的数据

喜欢

<td><input name="itemname[]" value="ball" ></td>
<td><input name="itemname[]" value="racket" ></td>
<td><input name="itemname[]" value="shoes" ></td>
<td><input  name="subitem[]" value="big"></td> 
<td><input  name="subitem[]" value="grenn"></td>
<td><input  name="subitem[]" value="sports"></td>
<td><input name="quantity[]" value="10"></td>
<td><input name="quantity[]" value="10"></td>
<td><input name="quantity[]" value="10"></td>

现在我试图将它们插入到表“selected_items”中,我想要类似的东西

项目名称 |分项 |数量

球-------大-----10

球拍-----绿色----10

鞋子-----运动----10

请帮帮我

编辑

我尝试过使用 foreach

foreach($_POST['quantity'] as $val) {

$sql2 = "INSERT INTO items_selected (jobsheet_id,item_name,subitem,quantity) VALUES ('$jobid','aaa', 'bbb', '{$val}')";

if (!mysqli_query($this->con,$sql2))
                {
                    die('Error: ' . mysqli_error($this->con));
                }

}

上述代码中的问题,我只能插入一列值。如何从 post 数组中插入其他列的值

谢谢

【问题讨论】:

  • 您能否发布您当前必须执行此操作的 PHP 代码,以及您遇到的任何问题等。
  • 嗨,詹姆斯,我已经编辑了我的问题,请看一下,谢谢

标签: php mysql arrays


【解决方案1】:

好的,我已经解决了。感谢其他试图帮助我的人

$quanity = count($_POST['quantity']);

$item = $_POST['itemname'];
$sub = $_POST['subitem'];
$qty = $_POST['quantity'];

for($i=0;$i<$quanity;$i++){
echo $item[$i].' '.$sub[$i].' '.$qty[$i];
// you can also use insert sql query
}

【讨论】:

    【解决方案2】:

    这很容易....您将所有信息作为数组发布。

    您显然希望每次插入 3 个数据库条目。 (你可以通过三个不同的名字让生活更简单)

    因此,在 php 检索页面上,您将执行以下操作。

    <?php
    
    CONNECT TO DATABASE
    
    $itemname = $_POST['ball'];
    $subitem = $_POST['racket'];
    $quantity = $_POST['racket'];
    
    foreach($itemname as $itemname):
    foreach($subitem as $subitem):
    foreach($quantity as $quantity):
    
    SQL QUERY HERE INSERTING $itemname, $subitem, $quantity
    
    endforeach;
    endforeach;
    endforeach;
    
    Close SQL Connection
    
    ?>
    

    上面的代码将触发九个 sql 查询,这是您可以获得的组合数量。您当然可以检查任何值是否为空,而不是跳过插入。不太清楚这有什么意义,如果您需要更多帮助,请告诉我。

    【讨论】:

    • 感谢您的回复。我试过你的代码。问题是它在所有行中插入相同的值
    • $itemname = $_POST['itemname']; $qualifier = $_POST['qualifier']; $数量 = $_POST['数量']; foreach($itemname as $itemname): foreach($qualifier as $qualifier): foreach($quantity as $quantity): $sql2 = "INSERT INTO items_selected (jobsheet_id,item_name,qualifier,quantity) VALUES ('$jobid', '{$itemname}', '{$qualifier}', '{$quantity}')"; if (!mysqli_query($this->con,$sql2)) { die('Error: ' .mysqli_error($this->con)); } endforeach;结束; endforeach;
    • 你能确认你真的想要 9 次插入吗?如果你不指定你的结果是什么......并且该代码应该可以正常工作。如果您愿意,只需 print_r($value);这将向您展示数据库中的内容
    • 哦,好吧......所以你已经为这个问题简化了它。哇......这可能会比有这么多循环有点混乱。第二个让我们让它工作。我还在等print_r的输出???
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 2020-05-17
    • 2010-10-03
    • 1970-01-01
    • 2019-08-20
    相关资源
    最近更新 更多