Kom ihåg mig?
Home Menu

Menu


Hur lagra kategorier

 
Ämnesverktyg Visningsalternativ
Oläst 2013-07-19, 12:25 #21
tec tec är inte uppkopplad
Medlem
 
Reg.datum: Mar 2010
Inlägg: 54
tec tec är inte uppkopplad
Medlem
 
Reg.datum: Mar 2010
Inlägg: 54
Kod:
$cats = get_stuff("SELECT * FROM categories ORDER BY parent_id ASC");
$lowest_level = $cats['0']['parent_id']; // hitta lägsta parent_id
$cat_arr = array();
foreach($cats as $ca){
  $cat_arr['rela'][$ca['parent_id']][] = $ca['id'];
  $cat_arr['data'][$ca['id']] = $ca;
}

echo '<select name="parent">'.traverse_stuff($cat_arr, $lowest_level, 0, 0).'</select>';

function traverse_stuff($cat_arr, $parent, $level, $select_id){
  $output = '';
    foreach($cat_arr['rela'][$parent] as $ca){
      $output .= '<option value="'.$ca.'" '.(($select_id == $ca) ? 'selected="selected"' : '').'>'.str_repeat('&nbsp;', $level).'|__'.$cat_arr['data'][$ca]['name'].'</option>';
      if(!isset($cat_arr['rela'][$ca])){continue;} // $ca har inga barn, gå vidare
      $output .= traverse_stuff($cat_arr, $ca, $level+1, $select_id);
    }
  return $output;
}
Bara ett databasanrop krävs, klarar oändligt med nivåer.
tec är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 08:39.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017