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

时间:2019-02-13 10:06:14

标签: php sql

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

这是已填写的表格-

form with data

我想使用php&sql(如果需要,可以使用ajax)插入表格,如下所示-

[table with data i hope

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您遇到的情况有3种选择:

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

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

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

答案 2 :(得分:0)

在为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时,您需要解析这些字符串回到对象,然后可以像应用嵌套对象一样应用循环。

快乐编码☻