September discount week
Pouze tento týden sleva až 80 % na e-learning týkající se MS Office
50 % bodů zdarma na online výuku díky naší Slevové akci!
Avatar
Martin Suchodol
Redaktor
Avatar
Martin Suchodol:22.12.2019 13:56

ahoj, opět začínám s php :-D, primárně se zaměřuji na jiný jazyk. A tohle mám spíš jako zábavu. Zkouším si vyrobit diskuzní widget. diskuzi k článku podobně jako to je zde na it networku pod články, ale ve stromovém formátu. Nejspíš mám jen nějakou blbost v kódu, ale prostě ji nevidím. Pomocí rekurze vypisuji, data do stromu (formátování stromu jsem si vypůjčil ze zdejšího kuzu na eshop). Poté jednoduchým dotazem vytáhnu všechny komentáře z databáze. Vše funguje, ale když si pomocí print_r() pokusím data vypsat, tak se mi jakoby zdvojnásobí viz obrázek. Kód je následující

<?php

class Comment
{
    public function formatTree($comments, $parentId = null) {
        $tree = array();
        foreach ($comments as $comment) {
            if($comment['comment_parent_id'] == $parentId) {
                $tree[$comment['comment_id']] = $comment;
                $tree[$comment['comment_id']]['subcomment'] = $this->formatTree($comments, $comment['comment_id']);
            }
        }
        return $tree;
    }

    public function getComments($articleId) {
        $query = Db::queryAll('
            SELECT *
            FROM comment
            WHERE article_id = ?
            ORDER BY comment_id
        ', array($articleId));
                return $this->formatTree($query);
    }
}

Soubor index.php

<?php
        $query = new Comment();
        $result = $query->getComments($_GET['stranka']);
        print("<pre>".print_r($result, true)."</pre>");

    ?>
 
Odpovědět
22.12.2019 13:56
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:22.12.2019 17:51

echo '<pre>' . htmlspecialchar­s($html) . '</pre>';

 
Nahoru Odpovědět
22.12.2019 17:51
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 2 zpráv z 2.