Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Stromová struktura: zjištění poslední položky

Aktivity
Avatar
motorovapila
Člen
Avatar
motorovapila:18.1.2014 11:51

Zdravím,
Potřeboval bych poradit, nebo aspoň nakopnout.

Z databáze vypisuji data ve stylu stromové struktury. A potřebuji vypsat pouze poslední položky ve stromu (které nemají žádne podkategorie).

Kód pro výpis stromové struktury vypadá následovně:

public function option_material($id = 0)
{
$sql_dotaz = mysqli_query(con­nect(),"SELECT * FROM tabulka WHERE rodic_ID LIKE '".$id."' ");

while($sql_vypis = mysqli_fetch_a­rray($sql_dotaz))
{

echo '<option>.$sql_vy­pis['nazev'].'</op­tion>';

$this->option_materi­al($id = $sql_vypis['ID']);

}

}

Předem děkuji za pomoc

Editováno 18.1.2014 11:54
 
Odpovědět
18.1.2014 11:51
Avatar
MrPabloz
Člen
Avatar
MrPabloz:18.1.2014 12:24
SELECT * FROM tabulka WHERE rodic_ID LIKE '".$id."' AND rodic_ID NOT IN (SELECT rodic_ID FROM tabulka)

Takže budeš dělat tak že si poddotazem zjistíš všechna ID_rodicu a pak vypíšeš jen ty, které v tom rodic_ID nejsou( tedy nejsou ničími rodiči). Doufám že sem to napsal dobře ten dotaz, nejsem si jistý přesně.

Nahoru Odpovědět
18.1.2014 12:24
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Kit
Tvůrce
Avatar
Odpovídá na motorovapila
Kit:18.1.2014 12:45

Výpis stromové struktury z relační databáze (traverzování stromu) je poměrně obtížná úloha generující značnou zátěž DB. Řešil jsem ji zde:
http://www.itnetwork.cz/…y-z-databaze
Jednodušší řešení jsem zatím nikde nenašel.

Nahoru Odpovědět
18.1.2014 12:45
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.