[ alfa-pro @ 25.10.2016. 00:44 ] @
E drustvo nesto mi ne ide od ruke da prikazam ovakav family tree dijagram u browseru iz pomoc php, mysql i html!
Bas mi treba da bude kao na slici! Ja sam pokusavao petlja u petlji (foreacah u foreach) ali jok ne da radi to sve vuce na svoju stranu. Pa sam pokusao da izlistam sve pa onda prente pa parente tih parenta ali ne dobijam nikako ni slicno slici....

Evo dijagrama:
http://fotkica.com/slike.php?slika=1_98490138_MUE4z.jpg

A evo kako mi baza izgleda:
http://fotkica.com/slike.php?slika=1_98490138_Screenshot_2_3.jpg

Jel moze uopste da se ovako izlista kao sto je na slici i kako ja to da izvedem ubih se mozgajuci i pokusavajuci ova dva dana!!!

Dajte neki simple primer ili savet!

Evo mog test pokusaja :

Code:

<div class="container">
         <?php

        $categories = $db->query("SELECT * FROM category");
        $data = array();

        // build menu
        function buildTree(array $elements, $parentId = 0) {
            $branch = array();

            foreach ($elements as $element) {

                if ($element['parent'] == $parentId) {
                    $children = buildTree($elements, $element['category_id']);
                    if ($children) {
                        $element['children'] = $children;
                    }
                    $branch[] = $element;
                }
            }
            return $branch;
        }


        // build template
        function buildTemplate($tree) {

            foreach ($tree as $item) {
//                echo  "<pre>";
//                print_r($item);

                if($item['parent'] == null) {
                    $isParent = $item['parent'] != null ? '' : 'cc';
                    echo '<div class="row">';
                    echo "<div class='col-lg-2 '></div><div class='col-lg-2'></div><div class='col-lg-2 text-center {$isParent}'>".$item['name']."</div><div class='col-lg-2'></div><div class='col-lg-2'></div>";
                    echo '</div>';

                }
                if(isset($item['children'])) {
                    foreach ($item['children'] as $child) {
                        echo '<div class="row">';
                        echo "<div class='col-lg-2 '></div><div class='col-lg-2'>".$child['name']."</div><div class='col-lg-2 text-center'></div><div class='col-lg-2'></div><div class='col-lg-2'></div>";
                        echo '</div>';
                    }
                }
            }

        }

        while ($result = $categories->fetch_assoc()) {
            $data[] = $result;
        }


        $tree =  buildTree($data);
        buildTemplate($tree);

        ?>
 </div>



Hvala vam unapred!

[Ovu poruku je menjao alfa-pro dana 25.10.2016. u 03:35 GMT+1]

[Ovu poruku je menjao alfa-pro dana 25.10.2016. u 03:36 GMT+1]
[ VladaSu @ 27.10.2016. 15:58 ] @
Za pocetak evo ti css
https://codepen.io/chuongdang/pen/lcnsC

Jedan od nacina koji je najbrizi i ima jedan sql upit.

1. U php prvo moras da pokupis sadrzaj cele tabele u recimo array $r
2. Napravis funkciju tree(array, parent_id)
3 Definises prazan array $tree
4. $tree = tree($r, 0); //0 je parent_id

funckija je nesto tipa:
unutra definises array $a
A. Onda krenes foreach i u $a dodajes samo gde je parent_id 0 jer ti je parametar 0
B. Odmah potom pozoves tree (u foreach) gde je parametar tree($r, i parent_id ti je id od korak A) i to dodas recimo u $a[$id][child]

Onda ces imati elemente array y array u tako koliko god imas duboko grana.

Kasnije na slican nacin radis ispis za svaki child pozoves ispis funkciju koja generise jedan ul li na mestu gde je pozvana.
[ S A J A @ 28.10.2016. 23:19 ] @
Ima na netu dosta primera kako se pravi drvo, evo na primer ovaj:

http://phpflow.com/php/how-to-create-dynamic-tree-view-menu/
[ alfa-pro @ 30.10.2016. 11:51 ] @
@VladaSu ne odgovara mi taj menu ima vise razloga zasto! Pre nego sto sam postavio ovde temu dobro sam ja izgooglao i probao taj primer! Hvala u svakom
@S A J A ovaj tvoj link nema veze sa ovim mojim ovde. To sto si ti meni dao to ovaj moj kod trenutno i pravi

Nego nesto se razmisljam da napravim staticki dijagram iscrtam ga u photoshopu kako meni odgovara i kad imam parenta renderujem samo tu jednu kocku na odredjeno polje. A css-om uradim absolutne pozicije radi preciznosti! To mi pade na pamet nisam testirao ko zna kako bi to izgledalo
[ Panajotov @ 30.10.2016. 12:09 ] @
Ovako nesto?

Code:
https://codepen.io/chuongdang/pen/lcnsC


[ VladaSu @ 31.10.2016. 08:07 ] @
Da li je tebi problem graficki prikaz ili priprema podataka?
Zbog cega ti ne odgovara taj primer? Graficki deo je identican onome sto si trazio. Ako znamo zbog cega ti ne odgovara mozda i nadjemo resenje jer po meni je to 100% ono sto si trazio.
Pripremu treba da uradis u php.
[ alfa-pro @ 01.11.2016. 09:47 ] @
Problem je php a ne dizajn.

Fora je da ga renderujem u binary tree! A najveca fora je sto ja nemam pojma da to izloopujem na pravi nacin! Pokusavao sam nesto da sa rekruzijama ali ne ide!
Ono sto treba za projekat jeste da to drvo mora da ima odredjen broj parenta!

E sada opet problem mi je organizacija u php i da to ja loopujem a sto se tice dizjana to manje vise!
[ VladaSu @ 01.11.2016. 14:29 ] @
Probacu ovako iz glave pa ti ispravi. Bitna je logika...
Code (php):

$sql = "SELECT id, parent_id, name FROM table";
$a = sqlToArray($sql); //ovde ti napravi konekcija, query, fetch...

$tree_array = generateTree($a, 0);

function generateTree($a, $parent_id)
{
    $parent_tree = [];
    foreach ($a as $val)
    {
         if ($val['parent_id'] == $parent_id)
         {
               $val['child] = generateTree($a, $val[$id]);
               $parent_tree[$val[$id]] = $val;
         }  

    }
    return $parent_tree;
}


A ispis istom ovom logikom.
Napravis funckiju ispis($tree_array). U njoj zapocnes ul i li i napises name od tog li i odmah jos u tom li napravis ispis($a['child]) ali od child elemenata. Zatim zatvoris li pa ul.
Primenis css i html koji sam vec liknovao.