Currently, I have data retrieved from SELECT and converted into PHP assoc array. Thus, I got this array.
[0] => array
(
[Gattung] => 'Gattung_A'
[Untergattung] => null
[Sektion] => null
[Untersektion] => null
[Serie] => null
[Unterserie] => null
[Art] => 'Art_A'
[Unterart] => null
[Varietaet] => null
[SubVarietaet] => null
[Form] => 'Form_A'
[Unterform] => null
[SpezialForm] => null
[Hybride] => null
[Blendling] => null
[Sorte] => null
)
[1] => array
(
[Gattung] => 'Gattung_A'
[Untergattung] => null
[Sektion] => null
[Untersektion] => null
[Serie] => null
[Unterserie] => null
[Art] => 'Art_B'
[Unterart] => null
[Varietaet] => 'Variant_G'
[SubVarietaet] => null
[Form] => 'Form_B'
[Unterform] => null
[SpezialForm] => null
[Hybride] => null
[Blendling] => null
[Sorte] => null
)
[2] => array
(
[Gattung] => 'Gattung_B'
[Untergattung] => null
[Sektion] => null
[Untersektion] => null
[Serie] => null
[Unterserie] => null
[Art] => 'Art_C'
[Unterart] => null
[Varietaet] => 'Variant_A'
[SubVarietaet] => null
[Form] => null
[Unterform] => null
[SpezialForm] => null
[Hybride] => null
[Blendling] => null
[Sorte] => null
)
.........
Nearly ~300k records
So far, I have fixed my array into one dimensional array based on unique values by using array_unique
. This is my result:
(
[0] => 'Gattung|Gattung_A'
[1] => 'Art|Art_A'
[3] => 'Form|Form_A'
[5] => 'Art|ArtB'
[7] => 'Varietaet|Variant_G'
[9] => 'Form|Form_G'
[11] => 'Gattung|Gattung_B'
[13] => 'Art|Art_C'
[15] => 'Varietaet|Variant_A'
}
However, my result is not well grouped. I need to display it on a page, so something like building a hierarchical system.
Question: @Melsi I hope my second edit will purify my queston.
How to display the data into a tree form (See Edit 2) or a table (See Edit 1)?
Thanks.
EDIT 1:
What I am doing is to create something like FULLTEXT search in several tables. This is the query to join all the tables: (All FKs have index to each table's id )
SELECT
tGa.Gattung AS Gattung,
tUG.Untergattung AS Untergattung,
tSe.Sektion AS Sektion,
tUS.Untersektion AS Untersektion,
tSer.Serie AS Serie,
tUser.Unterserie AS Unterserie,
tA.Art AS Art,
tUa.Unterart AS Unterart,
tV.Varietaet AS Varietaet,
tSV.SubVarietaet AS SubVarietaet,
tF.Form AS Form,
tUF.Unterform AS Unterform,
tSF.SpezialForm AS SpezialForm,
tH.Hybride AS Hybride,
tBL.Blendling AS Blendling,
tSo.Sorte AS Sorte
FROM
botanischername AS tBot
LEFT JOIN ( gattung AS tGa ) ON ( tBot.ID_Ga = tGa.ID_Ga )
LEFT JOIN ( untergattung AS tUg ) ON ( tBot.ID_UG = tUg.ID_UG )
LEFT JOIN ( sektion AS tSe ) ON ( tSe.ID_Se = tBot.ID_Se )
LEFT JOIN ( untersektion AS tUS ) ON ( tUS.ID_US = tBot.ID_US )
LEFT JOIN ( serie AS tSer ) ON ( tSer.ID_Ser = tBot.ID_Ser )
LEFT JOIN ( unterserie AS tUSer ) ON ( tUser.ID_USer = tBot.ID_USer )
LEFT JOIN ( art AS tA ) ON ( tA.ID_A = tBot.ID_A )
LEFT JOIN ( unterart AS tUa ) ON ( tUa.ID_UA = tBot.ID_UA )
LEFT JOIN ( varietaet AS tV ) ON ( tV.ID_V = tBot.ID_V )
LEFT JOIN ( subvarietaet AS tSV ) ON ( tSV.ID_SV = tBot.ID_SV)
LEFT JOIN ( form AS tF ) ON ( tF.ID_F = tBot.ID_F )
LEFT JOIN ( unterform AS tUF ) ON ( tUF.ID_UF = tBot.ID_UF )
LEFT JOIN ( spezialform AS tSF ) ON ( tSF.ID_SF = tBot.ID_SF )
LEFT JOIN ( hybride AS tH ) ON ( tH.ID_H = tBot.ID_H )
LEFT JOIN ( blendling AS tBL ) ON ( tBL.ID_BL = tBot.ID_BL )
LEFT JOIN ( sorte AS tSo ) ON ( tSo.ID_So = tBot.ID_So )
LEFT JOIN ( status AS tST
CROSS JOIN pflanze AS tPfl) ON
( tST.ID_ST = tBot.ID_ST AND tPfl.ID = tBot.ID )
WHERE
tGa.Gattung LIKE #1_Word# OR
tUG.Untergattung LIKE #2_Word# OR
tSe.Sektion LIKE #3_Word# OR
tUS.Untersektion LIKE #4_Word# OR
tSer.Serie LIKE #5_Word# OR
tUser.Unterserie LIKE #6_Word# OR
tA.Art LIKE #7_Word# OR
tUa.Unterart LIKE #8_Word# OR
tV.Varietaet LIKE #9_Word# OR
tSV.SubVarietaet LIKE #10_Word# OR
tF.Form LIKE #11_Word# oR
tUF.Unterform LIKE #12_Word# OR
tSF.SpezialForm LIKE #13_Word# oR
tH.Hybride LIKE #14_Word# oR
tBL.Blendling LIKE #15_Word# OR
tSo.Sorte LIKE #16_Word#
I know that by using LIKE %xxx% OR
is a heavy process. If you want to suggest me another way, it is fine.
My expected result is something like:
________________________________________________________________________________
| | | |______________________________Detail_____________|
| Num | Gattung | Art | Form | Varietaet | ...... | the other cols|
|------|-------------|-------|-----------|------------|--------|---------------|
| 1. | Gattung A | Art A | Form A | | | |
| | | <same | Form B | | | |
| | | data or Art A> | | | | |
| | | Art B | Form B | Variant G | | |
| 2. | Gattung B | Art C | | Variant A | | |
-------------------------------------------------------------------------------
Back 1 2 3 Next
EDIT 2 : Concise the question.
Or in tree form,
----- Art A ------ Form A
| |
| -- Form B
1. Gattung A ----|---- Art B ------ Form B ---- Variant G
2. Gattung B --------- Art C ------ Variant A
... And so on.