I have a DB with the following.
ID PARENT_ID LINK_NAME
1 NULL Home
2 NULL Information Technolgy
3 2 IT Task List
4 2 IT Help Desk Tickets
5 NULL Administration
6 5 Facilities
7 4 IT Help Desk Tickets sub
I use this for my site-structure. As you can see the parent_id links to the ID so You can see how the structure falls.
Example…
Administration
— Facilities
Home
Information Technolgy
— IT Help Desk Tickets
—- IT Help Desk Tickets sub
— IT Task List
Now Here is my code that generates this.
[code=php]
$dbc = db_connect(‘acridev_db’);
$q = “SELECT * FROM MENUS WHERE parent_id is NULL ORDER BY link_name”;
$r = mysql_query($q, $dbc);
$row_count = mysql_num_rows($r);
if (mysql_num_rows($r) > 0) {
while ($row = mysql_fetch_array($r, MYSQL_ASSOC)) {
$parent_id = $row[‘id’];
echo $row[‘link_name’];
echo ‘<br>’;
$q2 = “SELECT * FROM MENUS WHERE parent_id = ‘$parent_id’ ORDER BY link_name”;
$r2 = mysql_query($q2, $dbc);
$row_count2 = mysql_num_rows($r2);
if (mysql_num_rows($r2) > 0) {
while ($row2 = mysql_fetch_array($r2, MYSQL_ASSOC)) {
$parent_id2 = $row2[‘id’];
echo ‘– ‘.$row2[‘link_name’];
echo ‘<br>’;
$q3 = “SELECT * FROM MENUS WHERE parent_id = ‘$parent_id2’ ORDER BY link_name”;
$r3 = mysql_query($q3, $dbc);
$row_count3 = mysql_num_rows($r3);
if (mysql_num_rows($r3) > 0) {
while ($row3 = mysql_fetch_array($r3, MYSQL_ASSOC)) {
echo ‘—- ‘.$row3[‘link_name’];
echo ‘<br>’;
//END OF MENU 3
} //end while
} // end if
//END OF MENU 2
} //end while
} // end if
//END OF MENU 1
} // end WHILE
} // end IF
I know there must be a simpler way to keep drilling down then more and more SELECT STATEMENTS…
right now it can only go three levels deep. How can I make it go deeper even if I dont add more select statments.
Is there a way the program can know to drill down more or not?
Thank you