javascript - 一次向 MySQL 表中插入多行

标签 javascript php mysql

我正在构建这个网站,我需要向数据库发送一些信息,但是,该网站必须能够一次插入多行。

如图所示,在左侧第一个“Grupo”列中,我有 4 个不同的数字,这些数字是 id,每个数字代表不同的产品。我需要做的就是通过一份申请将这四行插入到数据库中。

我最初的想法:使用 JavaScript 将信息存储为变量,并将它们作为隐藏类型输入的值,但如果我只有一行或者行数是事先固定的,它就会起作用,它是什么? t。

enter image description here

最佳答案

我一直在努力,终于得到了我想要的结果。事实上,这是一个非常简单的过程。

我所做的是将输入中的信息保存为矩阵,然后循环它并在每个循环后执行查询,就这么简单。

我提供了一些示例代码。它们与我随问题提供的表格不同,但原理是相同的。

我做的第一件事是设置输入名称的格式,如下所示。它使循环数组变得更容易。这部分的功劳属于这篇文章的第一个答案:Submitting a multidimensional array via POST with php

<tr>
   <td><input name="info[0][top]" value="tr 1/ td 1" /></td>
   <td><input name="info[0][bottom]" value="tr 1/ td 2" /></td>
</tr>
<br/>
<tr>
   <td><input name="info[1][top]" value="tr 2/ td 1" /></td>
   <td><input name="info[1][bottom]" value="tr 2/ td 2" /></td>
</tr>
<br/>
<tr>
   <td><input name="info[2][top]" value="tr 3/ td 1" /></td>
   <td><input name="info[2][bottom]" value="tr 3/ td 2" /></td>
</tr>

之后,我只是在执行查询之前循环来自表单的数据。

$query = "INSERT INTO tb_teste (teste_info1, teste_info2) VALUES (:teste_info1, :teste_info2)";

$stmt = $this->conexao->prepare($query);

$el = $this->teste->__get('teste_info1');

$i = 0;
foreach ( $el as $item ) {

   $stmt->bindValue(':teste_info1', $this->teste->__get('teste_info1')[$i]['top']);
   $stmt->bindValue(':teste_info2', $this->teste->__get('teste_info1')[$i]['bottom']);

   $stmt->execute();
   $i++;
}

关于动态行数的需求,我只需在 JavaScript 中为生成的每个 id 创建一个输入,并将“info”的索引分配给一个变量,该变量将根据需要递增。这将为我提供所需的一切。

关于javascript - 一次向 MySQL 表中插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58676762/

相关文章:

php - MySQL 错误 - phpBB3

php - 有没有办法一起运行 store_result 和 get_result

php - 如何将查询返回的两个字段加载到关联数组中?

javascript - 使用 JavaScript 删除 div

javascript - 为什么这个代码是有效的?

javascript - JSON 解码不适用于 PHP

PHP 比较数组元素作为一个整体

javascript - jQuery .each 函数不保留全局变量

javascript - jQuery 在所见即所得文本区域中触发 keyCode Ctrl+Shift+z 和 Ctrl+z

php - phpMyadmin 中的最长执行时间?