Pieduriens Posted August 11, 2012 Report Share Posted August 11, 2012 Labdien kolēģi.. Cīnos idejiski ar dinamisku menubar.. Ar pirmā līmeņa menu linkiem taka nebūtu problēmas. Viegli izvilkt burtiski, kā vērtību. Bet.. Kā to visu padarīt dziļāk: Derētu: ir: links1 links2 links3 derētu arī: links1.1 links2.1 links 3.3 Paldies.. Quote Link to comment Share on other sites More sharing options...
Pieduriens Posted August 11, 2012 Author Report Share Posted August 11, 2012 tu gadījumā nedzenies pēc 'drop down menu' (pagūglē)? nice1, dzenos gan ;) Ar googli jau draudzējos diezgan, bet nekas labāks par http://wizardinternetsolutions.com/web-database-design/dynamic-multilevel-css-menu-php-mysql/ nav trāpījies, kas izskatās diezgan līks... Quote Link to comment Share on other sites More sharing options...
F3llony Posted August 11, 2012 Report Share Posted August 11, 2012 (edited) Tas, ko tu meklē, saucas rekursija. Pseidokods - $items = get_menu_items(0); function get_menu_items($parent){ $items = SQL::query("SELECT `title`,`url`,`id` WHERE `parent`='$parent'"); foreach ($items as $item){ $item->childs = get_menu_items($item->id); } return $items; } Edited August 11, 2012 by F3llony Quote Link to comment Share on other sites More sharing options...
daGrevis Posted August 11, 2012 Report Share Posted August 11, 2012 Diezgan daudz kveriji var tikt izpildīti, jo katram apakšlīmenim tiek izsaukts jauns kverijs. Izmanto kešošanu! Quote Link to comment Share on other sites More sharing options...
Pieduriens Posted August 11, 2012 Author Report Share Posted August 11, 2012 Paldies, ceru ka noderēs.. pašlaik man ir: function getMenu () { $sql = "SELECT * FROM menu WHERE parent='0' ORDER BY sort ASC"; $result = mysql_query ($sql) or die (mysql_error()); echo "<ul id=\"menu\">"; while ($r = mysql_fetch_array($result)) { echo "<li><a href='".$r['link']."'>".$r['label']."</a></li>"; } echo "</ul>"; } Kaut kā idejiski man neiet kopā ar F3llony. Un paldies Dagreiv, bet tas jau vēlāk.. Quote Link to comment Share on other sites More sharing options...
daGrevis Posted August 11, 2012 Report Share Posted August 11, 2012 Lūdzu beidz jaukt kopā visu ar HTML! ~~~ $menu = get_items(); ?> <?php foreach ($menu as $items): ?> <html><?= $item ?></html> <?php end; ?> ~~~ Tavā funkcijā nav rekursija! Rekursija ir sevis izsaukšana. Papēti vērleiz Feļona piemēru. Quote Link to comment Share on other sites More sharing options...
F3llony Posted August 11, 2012 Report Share Posted August 11, 2012 (edited) Diezgan daudz kveriji var tikt izpildīti, jo katram apakšlīmenim tiek izsaukts jauns kverijs. Izmanto kešošanu! Normālā situācijā, dati tiek saņemti no DB masīvā ar vienu kveriju un no tā tiek uzbūvēts menu apgriezti rekursīvi ciklējot caur masīvu, ne ar N kverijiem. Pardon, biju pusaizmidzis. Edited August 11, 2012 by F3llony Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.