【问题标题】:php insert multiple dynamic input data into databasephp将多个动态输入数据插入数据库
【发布时间】:2020-04-20 20:27:16
【问题描述】:

我有这个用于图片库的表单数据,并使用 jquery 为每个新图片添加动态输入(添加删除输入字段):

<div class="row-1">
   <input type="hidden" name="list_item_image_large[]" value="">
   <div class="form-group col-md-12">
      <input type="text" class="form-control name="list_item_title[]" value="">
   </div>
   <div class="form-group col-md-12">
      <input type="text" class="form-control name="list_item_image_description[]" value="">
   </div>
   <div class="form-group col-md-12">
      <input type="text" class="form-control name="list_item_image_photographer[]" value="">
   </div>
   <div class="form-group col-md-12">
      <input type="text" class="form-control name="list_item_image_copyright[]" value="">
   </div>
</div>
<div class="row-2">
   <input type="hidden" name="list_item_image_large[]" value="">
   <div class="form-group col-md-12">
      <input type="text" class="form-control name="list_item_title[]" value="">
   </div>
   <div class="form-group col-md-12">
      <input type="text" class="form-control name="list_item_image_description[]" value="">
   </div>
   <div class="form-group col-md-12">
      <input type="text" class="form-control name="list_item_image_photographer[]" value="">
   </div>
   <div class="form-group col-md-12">
      <input type="text" class="form-control name="list_item_image_copyright[]" value="">
   </div>
</div>

现在提交后我有这个数据:

Array
(
    [list_item_image_large] => Array
        (
            [0] => uploads/images/posts/1586075502_3460aaee4378986bf677.jpg
            [1] => uploads/images/2020/04/1585774613_c2f7ed8d8b0458271371.png
        )

    [list_item_title] => Array
        (
            [0] => 
            [1] => 
        )

    [list_item_image_description] => Array
        (
            [0] => 
            [1] => 
        )

    [list_item_image_photographer] => Array
        (
            [0] => 
            [1] => 
        )

    [list_item_image_copyright] => Array
        (
            [0] => 
            [1] => 
        )
)

现在,我需要为 mysql 数据库中的每个图像插入图像数据(标题、描述、摄影师、版权)。怎么插入?!

【问题讨论】:

  • 一个一个,用正则循环插入
  • @TraianGEICU:当然,您可以添加答案以获取更多详细信息吗?
  • 其他已经提供了很多细节,但也许检查一些标准方面的教程也很好

标签: php mysql


【解决方案1】:

最好的方法是使用不同的结构。

Array
(
    [0] => Array
        (
            [list_item_title] => value
            [list_item_image_description] => value
            [list_item_image_photographer] => value
            [list_item_image_copyright] => value
        )

    [1] => Array
        (
            [list_item_title] => value
            [list_item_image_description] => value
            [list_item_image_photographer] => value
            [list_item_image_copyright] => value
        )
)

有了这个结构,你可以简单地使用一个 for(each) 循环

for($i=0; $i<count($array); $i++) {
  // mysql_stuff, can access field values like this: $array[$i]['list_item_title']
}

但这需要对 html 输入字段进行不同的命名。

<input type="text" class="form-control name="image[0][list_item_title]" value="">
...
<input type="text" class="form-control name="image[1][list_item_title]" value="">
...

意思是复制字段的逻辑会有点不同,但是提交后处理数据会容易很多。

【讨论】:

  • 假设修改 jQuery 装置在 OP 的能力范围内,这将使生活更轻松。
【解决方案2】:

首先将您的数据聚合到单个项目中。像这样的东西(存在更奇特的方式):

$items = [];

foreach($data['list_item_image_large'] as $num => $val) {
    $item[$num] = [
        'list_item_image_large' => $val,
        'list_item_title' => $data['list_item_title'][$num],
        'list_item_image_description' => $data['list_item_image_description'][$num],
        'list_item_image_photographer' => $data['list_item_image_photographer'][$num],
        'list_item_image_copyright' => $data['list_item_image_copyright'][$num]
    ];
}

var_dump($items); // See what you got there

您遵循上面的代码是如何工作的,对吧?之后,使用您首选的与 MySQL 交互的方法将数据插入数据库应该很容易。我假设您通常知道如何插入数据,并且您只是在为数据结构而苦苦挣扎。

【讨论】:

    猜你喜欢
    • 2015-06-21
    • 2021-01-23
    • 1970-01-01
    • 2018-09-13
    • 2017-01-13
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 2020-07-23
    相关资源
    最近更新 更多