I am trying to get a PHP function that will generate a menu div structure.
I am using Meekrodb to connect to MySQL.
Meekrodb returns data to an array
$menu_results = DB::query("SELECT mi.id, mi.display, mi.parent_item, mi.sort
FROM ibtstl_menu_items mi
WHERE mi.state = 1 AND mi.fk_menu = 1
ORDER BY mi.sort");
So the $menu_results array has data:
Array
(
[0] => Array
(
[id] => 1
[display] => Repertoire
[parent_item] => 0
[sort] => 1.0000
)
[1] => Array
(
[id] => 9
[display] => Search repertoire
[parent_item] => 1
[sort] => 1.0100
)
[2] => Array
(
[id] => 3
[display] => Add new chart
[parent_item] => 1
[sort] => 1.0500
)
[3] => Array
(
[id] => 4
[display] => Add new composer / lyricist
[parent_item] => 1
[sort] => 1.0501
)
[4] => Array
(
[id] => 5
[display] => Add new tag
[parent_item] => 1
[sort] => 1.0502
)
[5] => Array
(
[id] => 6
[display] => Reports
[parent_item] => 1
[sort] => 1.0800
)
[6] => Array
(
[id] => 7
[display] => Public repertoire list
[parent_item] => 6
[sort] => 1.0801
)
[7] => Array
(
[id] => 8
[display] => Gigs
[parent_item] => 0
[sort] => 3.0000
)
[8] => Array
(
[id] => 11
[display] => Search gigs
[parent_item] => 8
[sort] => 3.0010
)
[9] => Array
(
[id] => 10
[display] => Add new gig
[parent_item] => 8
[sort] => 3.0020
)
[10] => Array
(
[id] => 2
[display] => Videos
[parent_item] => 0
[sort] => 5.0000
)
[11] => Array
(
[id] => 12
[display] => Search videos
[parent_item] => 2
[sort] => 5.0010
)
[12] => Array
(
[id] => 13
[display] => Add new video
[parent_item] => 2
[sort] => 5.0200
)
)
I've looked at dozens of answers here and other websites but I just can't seem to make it make sense.
It might be two parted: I might need to process this array so that the children items are arrays in their parent items? I saw that was an approach out there. And then I need a recursive function to process that out so I can have
<div>
<a href="#">Repertoire</a>
<div>
<a href="#">Search repertoire</a>
<a href="#">Add new chart</a>
<a href="#">Add new composer / lyricist</a>
<a href="#">Add new tag</a>
<a href="#">Reports</a>
<div>
<a href="#">Public repertoire list</a>
</div>
</div>
<a href="#">Gigs</a>
<div>
<a href="#">Search gigs</a>
<a href="#">Add new gig</a>
</div>
<a href="#">Videos</a>
<div>
<a href="#">Search videos</a>
<a href="#">Add new video</a>
</div>
</div>
Any help would be appreciated!
Thanks