PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Puumenüü alamenüü viimase elemendi kindlakstegemine
Postitaja: ans lammas 2006-01-05 15:57:04
Kuidas oleks võimalik kindlaks teha, kas mingi element on vastavas alam(menüüs) viimane või esimene?
Kui on siis omistada vastavale väärtusele "true": nt. kui on viimane, siis "last" = true;


PHP kood:
<?php
function dbTree($sql) {
  
$qres $this->query($sql);
  while (
$row $this->fetch_row($qres)) {
    
$items[$row[0]] = array(
    
'id'=> $row[0],
    
'parent'=> $row[1],
    
'ord'=> $row[2],
    
'title'=> $row[3],
    
'split'=> $row[4],
    
'img'=> $row[5],
    
'count'=> 0,
    
'level'=> 0,
    
'levels'=> 0,
    
'child'=> array(),
    
'last'=> false,
    
'first'=>false
    
);
  }
  
$tree = array();
  foreach (
$items as $key => $item) {
  if (
$item['parent'] == 0) {
    
$tree[] =& $items[$item['id']];
  } elseif (isset(
$items[$item['parent']])) {
    
$items[$item['parent']]['child'][] = & $items[$item['id']];
    
$count count($items[$item['parent']]['child']);
    
$items[$key]['count'] = $count;
    
$items[$item['parent']]['levels'] ++;
    
$items[$item['id']]['level'] ++;
    if (
$items[$item['parent']]['parent'] != 0) {
      
$items[$item['id']]['level'] ++;
    }
   } else {
     
trigger_error('id nr.'.$item['id'].' ei ole vanemaid.'E_USER_WARNING);
    }
  }
  return 
$tree;
}
?>
RE: Puumenüü alamenüü viimase elemendi kindlakstegemine
Postitaja: lamba ada 2006-01-05 15:58:46
PS. Tegemist on modifitseeritud stepzi algoritmiga, seega tänud talle!
RE: Puumenüü alamenüü viimase elemendi kindlakstegemine
Postitaja: MeiX 2006-01-05 16:10:48
Kontrolli foreach tsüklis, kas parent on vahepeal muutunud, kui jah, siis märgista eelmine käsitletud element oma harus viimaseks ja jooksev esimeseks. Eeldus on aga see, et elemendid lähevad foreachi parenti järgi järjestatult.
RE: Puumenüü alamenüü viimase elemendi kindlakstegemine
Postitaja: ans lammas 2006-01-05 16:20:20
aga nad ei lähe kahjuks parenti järgi järjestatult.
RE: Puumenüü alamenüü viimase elemendi kindlakstegemine
Postitaja: MeiX 2006-01-05 16:27:19
Mille järgi sa need järjestad siis? ord järgi? sellisel juhul päri baasist "order by parent_id, ord"

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0840089321136