Veľkonočná akcia je tu a s ňou aj extra kredity ZADARMO na náš interaktívny e-learning. Dobij si teraz kredity a posuň sa vo svojej kariére vpred!
Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – PHP: Prezentácia stromovej štruktúry z databázy

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Kit
Tvůrce
Avatar
Odpovedá na martinkobelka
Kit:26.8.2012 14:07

Prostě vyber všechny záznamy z dané skupiny (nazval jsem ji gid). Pak je musíš poskládat do stromu. Jde to jednoduchým cyklem.

Tím, že každý uzel stromu mám jako objekt, můžu mít na každý z nich 2 reference: Jednu v poli a druhou ve vytvářeném stromu.

Odpovedať
26.8.2012 14:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
martinkobelka
Tvůrce
Avatar
martinkobelka:26.8.2012 14:15

Tak už se mi to povedlo. Je to sice spatlanina a ne kod, ale funguje to, a to je p ro mě hlavní.

$dotaz = mysql_query("select * from vzkazy");
$pole = array();
while($vypis = mysql_fetch_array($dotaz)){
    $pole[] = $vypis;
}
$vysledek = array();
function podmenu($id, $pole){
    foreach($pole as $vypis){
        if($vypis['rodic'] == $id){
            if(!isset($podmenu)){
                $podmenu = array();
            }
            $podmenu[] = $vypis['obsah'];
            if(is_array($dopsat = podmenu($vypis['id'], $pole))){
                $podmenu[] = $dopsat;
            }
        }
    }
    if(isset($podmenu)){
        return $podmenu;
    }
}
foreach($pole as $vypis){
    if($vypis['rodic'] == 0){
        $vysledek[] = $vypis['obsah'];
        if(is_array($dopsat = podmenu($vypis['id'], $pole))){
            $vysledek[] = $dopsat;
        }

    }
}
function vypis($seznam){
    echo "<ul>\n";
    foreach($seznam as $vypis){
        if(is_array($vypis)){
            vypis($vypis);
        }
        else{
            echo "<li>$vypis</li>\n";
        }
    }
    echo "</ul>\n";
}
vypis($vysledek);

a databáze:
vzkazy(id int, rodic int, obsah text)

 
Odpovedať
26.8.2012 14:15
Avatar
martinkobelka
Tvůrce
Avatar
martinkobelka:27.8.2012 12:30

Nemůžeš udělat živou ukázku z tohoto článku a dát sem odkaz?

 
Odpovedať
27.8.2012 12:30
Avatar
Kit
Tvůrce
Avatar
Odpovedá na martinkobelka
Kit:27.8.2012 12:36

Můžu, ale nevím, jestli to bude ještě dnes.

Odpovedať
27.8.2012 12:36
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 4 správy z 14.