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

I want to insert multiple data into table in single column with same primary key when form is submitting using php sql.

Here is the filled form -

form with data

I want to insert into table using php & sql (ajax if need) like this below link-

[table with data i hope

I had same isssue while making API for PHP.

Try this , declare your Item name , quanity and date as TEXT and insert nested JSON in those fields.

i.e.

//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}]"

So,

"[{ABC},{PQR},{XYZ}]" go to item_name column,

"[{23},{56},{14}]" goes to quantity column,

"[{23/05/1900 12:00 GMT},{23/05/1908 12:00 GMT},{23/05/1980 12:00 GMT}]" goes to date column

as simple string or text. Here's below is my HTML Code for Table (Ignore style ☺)

<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>

So while adding to Database you need first push data to object then Stringyfy it and then send to database. And while fetching from database and displaying again to UI , you need to Parse those strings back to Objects then you can apply looping like it is an Nested object.

Happy Codeing ☻

</div>

You can not use multiple rows with same primary key..For every Item you have to create separate row.

If you want to implement these then there are 2 way:

1) create Main Table: which contain all row info other than item info. Create sub table : which contain all item info by using main_table_id as forgin key.
2) You can create item column & store all item & quantity into in JSON format.(mysql>=5.7 support json format) like :

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

There are 3 options in your situation:

  1. Serialize data (see the answer below). Notice that it's almost impossible to run queries on this data.

  2. Use an extra table for your items. Then use a foreign key that connect this item to your main table

  3. Use a no-sql database (for example MongoDB). In no-sql databases it is possible to store complete "objects" (called documents) with multiple child-objects