我想在一个列中使用单个主键在数据库中插入多个数据

问题描述 投票:-3回答:3

我希望在使用php sql提交表单时,使用相同的主键将多个数据插入到单个列的表中。

这是填写的表格 -

form with data

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

[table with data i hope

php sql
3个回答
0
投票

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

试试这个,将你的Item名称,数量和日期声明为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时,您需要将这些字符串解析回对象,然后您可以应用循环,就像它是嵌套对象一样。

快乐编码☻


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

0
投票

您的情况有3种选择:

  1. 序列化数据(参见下面的答案)。请注意,对此数据运行查询几乎是不可能的。
  2. 为您的商品使用额外的桌子。然后使用将此项连接到主表的外键
  3. 使用no-sql数据库(例如MongoDB)。在no-sql数据库中,可以存储具有多个子对象的完整“对象”(称为文档)
© www.soinside.com 2019 - 2024. All rights reserved.