Jump to content
php.lv forumi

Menubar iekš PHP


Pieduriens

Recommended Posts

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..

Link to comment
Share on other sites

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...

Link to comment
Share on other sites

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 by F3llony
Link to comment
Share on other sites

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..

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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 by F3llony
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...