Jump to content
php.lv forumi

Expandable PHP/MySQL Categories Menu


o666rland

Recommended Posts

Sveicinaati!

 

 

Veershos pie Jums kaa gudriem cilveekiem. Izmekleejos Googlee, Nigmaa utt. Atradu visu ko, be ne to ko man vajag.

 

 

Situaacija taada. Ir table -> ID, PARENT, NAME_LV Itkaa visam vajadzeetu buut pareizi.

 

 

Vajadziiba sekojosha. Atverot saitu nolasaas visi parenti ar veertiibu 0. Nekaadu probleemu. Kad uzspiezhu uz vienu no parenta (0) vajag paraadiit visas apakshketegorijas (SELECT * FROM cats WHERE (parent='$_GET["id"]')). Ar rekursijas metodi dabuju gatavu, tikai liidz 2 liimenim

 

BET man vajag lai vareetu nolasiit neierobezhotaa liimenii.

 

Piemeram ->Veljas mashiinas(id=1,parent = 0) ->Lielaas(id=2,parent = 1)

->Mazaas(id=3,parent = 1) -> Bosch (id=4, parent=3) utt.

 

Toistj, uzreiz paraadiit hierarhiaalaa veidaa nav probleemu, bet lai paraadiitos visas kategorijas uzspiezhot uz kaadas kategorijas, lai paraadaas kategorijas SUBkategorijas (kuras pirms tam ir nosleeptas), uzspiezhot uz kaadu SUB kategoiju, lai paraadaas visas sub kategorijas SUB kategorijas utt.

 

Meeginaaju 2 variantus -> ar javascript nesanaaca

-> ar php es varu nolasiit tikai liidz 2 limenim un vsjo.

 

 

Atvainojiet par slikto skaidrojumu, bet savaadaak nemaaceeju..

 

Ko Juus man ieteiktu?

 

 

Tjipa tadu kaa www.euroshop.lv

Link to comment
Share on other sites

nu ja raada tikai 2 limenjus, tad visticamaak, ka nepareizs skripts. pienjemu, ka tev vareetu buut, ka jauno $_GET['id'] nepieshkjir pareizi. neaizmirsti gan noraadiit, kad tai rekursijai jaabeidzaas, savaadaak buus muuzjiigais cikls

 

otrs variants, kad daudz tev tie dati un netiek izmantoti indeksi un taimlimits iesleedzaas, bet shis gadiijums laikam tev nebuus.

Link to comment
Share on other sites

http://cerber.expressshop.lv/

 

Apsties sho - varbuut labaak sapratiisi, nekaa izskaidroju....:)

 

Kods ir sekojosh:

 

 

---------------------------------------------------------------------------------------

 

 

class NavMenu {

 

 

//var $theQuery;

//var $link;

 

var $menuArray = array();

 

function show_menu($id=0, $path="",$iid=0) {

 

$connector = new DbConnector();

 

$db_result = $connector->query("SELECT id, parent ,name_lv FROM cats WHERE parent=$id ORDER BY id ASC");

 

echo '<ul class="id_nav"'.($id==0?'id="tree"':'').'>';

//echo '<ul '.($id==0?'id="left_menu"':'id="'.$id.'"').'>';

 

$i=0;

$x = 0;

while ($row = $connector->fetchArray($db_result)) {

$i++;

$newPath = $path .($path==''?'':'.'). $i;

echo '<li>'.$newPath.'<a href="?step=cat&id='.$row['id'].'">'.$row['name_lv'].'</a>';

 

if($iid == $row["id"] && $iid > 0 )

{

$this->show_menu($iid, $newPath);

++$x;

}

 

echo '</li>';

}

 

printf("</ul>\r\n");

}

 

 

// CLASS END

}

 

---------------------------------------------------------------------------------------

 

 

 

 

$menu = new NavMenu;

 

if(isset($_GET["id"]))

{

$menu->show_menu(0,"",$_GET["id"]);

}

else

{

$menu->show_menu();

}

 

---------------------------------------------------------------------------------------

Link to comment
Share on other sites

te pat tika kaut kur apspriests ....

function menu($id,$parrent){

$all = select id,name,parrent from kateg where cat = $id //tas buutu kverijs

while (){

echo '<a href="?id=$id">$name</a>';

menu($id,$parrent);

}

}

kaut kaa taa... tas ir tiiri triviaali ... :) buutiiba lai buutu :)

Link to comment
Share on other sites

a tu padomaa :) keissofball variants, uznjems kaut kaadu projektu a rokas pa iisu un pa liiku .... :/ saradušies "jaunie talanti" kā sēnes pēc lietus ...

Nevaig njemt projektu, ja zin ka nevarees tur nekaa izdariit ..

Edited by Klez
Link to comment
Share on other sites

Saprotu, kritika tas ir labi...

 

 

Bet Tu man izskaidro, kaapeec nevar iztikt tikai ar id un parent?

 

 

P.S. Man neviens neparasa vai es to varu vai nee - dari un viss.. Es saprotu, ka Tu esi gudrs shajaa jomaa taapeec es luudzu padomu, paliidziibu, ja vari paliidzeet luudzu, ja ne, nu tad neko...

Edited by o666rland
Link to comment
Share on other sites

×
×
  • Create New...