【问题标题】:I want to insert form multiple data in database in one column with single primary key我想在具有单个主键的一列中插入数据库中的多个数据
【发布时间】:2019-02-13 18:48:21
【问题描述】:

当使用 php sql 提交表单时,我想将多个数据插入到具有相同主键的单列中的表中。

这是填写好的表格-

我想使用 php 和 sql(如果需要,ajax)插入表中,如下链接 -

【问题讨论】:

  • 当然,你想做什么?有什么问题?
  • 你能在这里放一些代码吗?
  • 欢迎来到 SO!请改进您的问题,将您自己的尝试显示为文本形式的代码。使用问题下方的edit 链接。另见How to Askminimal reproducible example
  • 将其拆分为 2 个表。不要使用一张桌子
  • 另见n:m relationship 基本上你有像项目和客户这样的主数据。然后你有订单、库存等流数据,表达主数据之间的关系,并添加日期、数量等数据。

标签: php sql


【解决方案1】:

您不能使用具有相同主键的多行..对于每个项目,您必须创建单独的行。

如果你想实现这些,那么有两种方法:

1) 创建主表:其中包含除项目信息之外的所有行信息。 创建子表:使用 main_table_id 作为 forgin 键包含所有项目信息。
2)您可以创建项目列并以JSON格式存储所有项目和数量。(mysql> = 5.7支持json格式)如:

id    Item_data (json format)                                        date
1     {["name":"Pen","quantity":10],["name":"xyz","quantity":1]}     2019/02/13
2     {["name":"gfdgf","quantity":10],["name":"asa","quantity":1]}   2019/02/13

【讨论】:

  • 感谢您的回复。这是一种方式,另一种方式分成2张桌子。谢谢哥们:)
【解决方案2】:

我在为 PHP 制作 API 时遇到了同样的问题。

试试这个,将您的项目名称、数量和日期声明为 TEXT,并在这些字段中插入嵌套的 JSON。

//while adding to DB json will look like

"[{ABC},{PQR},{XYZ}]","[{23},{56},{14}]","[{23/05/1900 12:00 GMT},{23/05/1908 12:00 GMT},{23/05/1980 12:00 GMT}]"

所以,

"[{ABC},{PQR},{XYZ}]" 转到 item_name 列,

"[{23},{56},{14}]"进入数量栏,

"[{23/05/1900 12:00 GMT},{23/05/1908 12:00 GMT},{23/05/1980 12:00 GMT}]" 转到日期列

作为简单的字符串或文本。下面是我的表格 HTML 代码(忽略样式☺)

<table>
    <thead>
    <tr>
    <td>ITEM_NAME</td>
    <td>QUANTITY</td>
    <td>DATE</td>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td>ABC</td>
    <td>23</td>
    <td>23/05/1900 12:00 GMT</td>
    </tr>
        <tr>
    <td>PQR</td>
    <td>56</td>
    <td>23/05/1908 12:00 GMT</td>
    </tr>
        <tr>
    <td>XYZ</td>
    <td>14</td>
    <td>23/05/1980 12:00 GMT</td>
    </tr>
    </tbody>

因此,在添加到数据库时,您需要先将数据推送到对象,然后 Stringyfy 将其发送到数据库。 在从数据库中获取并再次显示到 UI 时,您需要将这些字符串解析回对象,然后您可以像嵌套对象一样应用循环。

快乐编码☻

【讨论】:

    【解决方案3】:

    您的情况有 3 个选项:

    1. 序列化数据(请参阅下面的答案)。请注意,几乎不可能对这些数据运行查询。

    2. 为您的物品使用额外的桌子。然后使用外键将此项目连接到您的主表

    3. 使用无 sql 数据库(例如 MongoDB)。在 no-sql 数据库中,可以存储具有多个子对象的完整“对象”(称为文档)

    【讨论】:

      猜你喜欢
      • 2021-11-30
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      相关资源
      最近更新 更多