'How can I generate specific data structure using mysql and php
Below is my database structure and after that my required output. Since few days, I am not getting any logic to resolve
{
"LIST": [
{
"ID": "1",
"PID": "1",
"PLID": "1",
"name": "BRAND",
"value": "Dell"
},
{
"ID": "2",
"PID": "1",
"PLID": "1",
"name": "PROCESSOR",
"value": "Dual Core"
},
{
"ID": "3",
"PID": "1",
"PLID": "1",
"name": "RAM",
"value": "4 GB"
},
{
"ID": "4",
"PID": "1",
"PLID": "1",
"name": "HARD DISK",
"value": "500 GB HDD"
},
{
"ID": "5",
"PID": "1",
"PLID": "2",
"name": "BRAND",
"value": "Dell"
},
{
"ID": "6",
"PID": "1",
"PLID": "2",
"name": "PROCESSOR",
"value": "Dual Core"
},
{
"ID": "7",
"PID": "1",
"PLID": "2",
"name": "RAM",
"value": "8 GB"
},
{
"ID": "8",
"PID": "1",
"PLID": "2",
"name": "HARD DISK",
"value": "500 GB HDD"
},
{
"ID": "9",
"PID": "1",
"PLID": "3",
"name": "BRAND",
"value": "Dell"
},
{
"ID": "10",
"PID": "1",
"PLID": "3",
"name": "PROCESSOR",
"value": "Dual Core"
},
{
"ID": "11",
"PID": "1",
"PLID": "3",
"name": "RAM",
"value": "4 GB"
},
{
"ID": "12",
"PID": "1",
"PLID": "3",
"name": "HARD DISK",
"value": "1 TB HDD"
},
{
"ID": "13",
"PID": "1",
"PLID": "4",
"name": "BRAND",
"value": "Dell"
},
{
"ID": "14",
"PID": "1",
"PLID": "4",
"name": "PROCESSOR",
"value": "Dual Core"
},
{
"ID": "15",
"PID": "1",
"PLID": "4",
"name": "RAM",
"value": "8 GB"
},
{
"ID": "16",
"PID": "1",
"PLID": "4",
"name": "HARD DISK",
"value": "1 TB HDD"
},
{
"ID": "17",
"PID": "1",
"PLID": "5",
"name": "BRAND",
"value": "Dell"
},
{
"ID": "18",
"PID": "1",
"PLID": "5",
"name": "PROCESSOR",
"value": "i3"
},
{
"ID": "19",
"PID": "1",
"PLID": "5",
"name": "RAM",
"value": "4 GB"
},
{
"ID": "20",
"PID": "1",
"PLID": "5",
"name": "HARD DISK",
"value": "500 GB HDD"
},
{
"ID": "21",
"PID": "1",
"PLID": "6",
"name": "BRAND",
"value": "Dell"
},
{
"ID": "22",
"PID": "1",
"PLID": "6",
"name": "PROCESSOR",
"value": "i3"
},
{
"ID": "23",
"PID": "1",
"PLID": "6",
"name": "RAM",
"value": "8 GB"
},
{
"ID": "24",
"PID": "1",
"PLID": "6",
"name": "HARD DISK",
"value": "500 GB HDD"
},
{
"ID": "25",
"PID": "1",
"PLID": "7",
"name": "BRAND",
"value": "Dell"
},
{
"ID": "26",
"PID": "1",
"PLID": "7",
"name": "PROCESSOR",
"value": "i3"
},
{
"ID": "27",
"PID": "1",
"PLID": "7",
"name": "RAM",
"value": "4 GB"
},
{
"ID": "28",
"PID": "1",
"PLID": "7",
"name": "HARD DISK",
"value": "1 TB HDD"
},
{
"ID": "29",
"PID": "1",
"PLID": "8",
"name": "BRAND",
"value": "Dell"
},
{
"ID": "30",
"PID": "1",
"PLID": "8",
"name": "PROCESSOR",
"value": "i3"
},
{
"ID": "31",
"PID": "1",
"PLID": "8",
"name": "RAM",
"value": "8 GB"
},
{
"ID": "32",
"PID": "1",
"PLID": "8",
"name": "HARD DISK",
"value": "1 TB HDD"
}
]
}
and I want the data in the below format.The desired output is like brand with all processor list, all processor with available ram list and all ram with available HDD options.
brand{
dell{i5,i3}
}
processor{
i5{4gb,8gb}
i3{4gb,16gb}
}
ram{
4gb{500,1tb}
8gb{500,1tb}
16gb{500,2tb,1tb}
}
I tried few sql query, but I am not able to create logic for above structure
SELECT DISTINCT(PLID) as PLID FROM `variant` where PID=1
SELECT DISTINCT(name) as name FROM `variant` where PID=1
SELECT DISTINCT(value) as value FROM `variant` where PID=1 and PLID in (1,2,3,4,5,6,7,8) and name="PROCESSOR"
Thankyou
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
