Avatar
motorovapila
Člen
Avatar
motorovapila:

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:
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
Redaktor
Avatar
Odpovídá na motorovapila
Kit:

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.