Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] struktura drzewa i rozwijanie konkretnych gałęzi
Forum PHP.pl > Forum > PHP
grzeee
Witam,
mam pewną strukturę kategori w bazie.
Mam sposób na wyciągnięcie całej struktury i przypisanie do nich dzieci:
  1. $dbHandle -> query("SELECT * FROM `".DB_PREFIKS."category` ORDER BY displayorder ");
  2. while($wpis = $dbHandle -> fetch_row()){
  3. $wpis['children'] = array();
  4. $flat_category_data[$wpis['id']] = $wpis;
  5. }
  6.  
  7. foreach($flat_category_data as $key => $wpis){
  8. if($wpis['parent']){
  9. $flat_category_data[$wpis['parent']]['children'][] =& $flat_category_data[$key];
  10. }else{
  11. $tree[] =& $flat_category_data[$key];
  12. }
  13. }


Jedna kategoria składa się z :
  1. (
  2. [id] => 644
  3. [generation] => 3 // poziom kategori
  4. [displayorder] => 0 //kolejnosc
  5. [parent] => 630 // id rodzica
  6. [nazwa] => Nazwa Kategorii
  7. [children] =>array() // tablica z przypisanymi kategoriami
  8. )


Jednak że kategori jest blisko 2000 chciałbym żeby nie budować całego menu bo troche duzo tego jest ;/
Jak najszybszym sposobem, łatwo wyciągnąć potrzebne kategorie czyli wszystkich rodziców, i ich "rodzeństwa" gdy mamy id bieżącej kategorii?
Może ktoś mnie na to naprowadzić ?
cudny
Zrób sobie kolumnę parents i dopisuj tam po przecinku rodziców przy dodawaniu nowej kategorii.
Potem robisz sobie select po id kategorii bierzącej pobierając samą kategorię bierzącą i jej dzieci, a następnie pobierasz sobie: $parents = select * from db where id in(select parents where id=bierzace_id);
Dzięki temu masz wszytkich rodziców, bierzącą kategorię i jej dzieci.
W innym wypadku będziesz musiał robić to rekurencyjnie zapytaniem po zapytaniu co bardzo obciąży bazę
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.