abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 16:38 | Komunita

Byly zveřejněny videozáznamy přednášek a workshopů z letošní konference OpenAlt konané 5. a 6. listopadu v Brně. K videozáznamům lze přistupovat ze stránky na SuperLectures nebo přes program konference, detaily o vybrané přednášce nebo workshopu a dále kliknutím na ikonku filmového pásu. Celkově bylo zpracováno 65 hodin z 89 přednášek a workshopů.

Ladislav Hagara | Komentářů: 0
dnes 11:30 | Komunita

Bylo oznámeno, že bude proveden bezpečnostní audit zdrojových kódů open source softwaru pro implementaci virtuálních privátních sítí OpenVPN. Audit provede Matthew D. Green (blog), uznávaný kryptolog a profesor na Univerzitě Johnse Hopkinse. Auditována bude verze 2.4 (aktuálně RC 1, stabilní verze je 2.3.14). Audit bude financován společností Private Internet Access [reddit].

Ladislav Hagara | Komentářů: 1
dnes 06:00 | Komunita

Na YouTube byl publikován Blender Institute Reel 2016, ani ne dvouminutový sestřih z filmů, které vznikly za posledních 10 let díky Blender Institutu. V institutu aktuálně pracují na novém filmu Agent 327. Dění kolem filmu lze sledovat na Blender Cloudu. Videoukázka Agenta 327 z června letošního roku na YouTube.

Ladislav Hagara | Komentářů: 0
dnes 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

Ladislav Hagara | Komentářů: 1
včera 16:00 | Nová verze

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
včera 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 5
7.12. 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
7.12. 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 2
7.12. 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 10
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 27
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 804 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Jak na výpis položek ze stromu kategorie v PHP

5.4.2014 13:05 JaN
Jak na výpis položek ze stromu kategorie v PHP
Přečteno: 484×
Zdravím. Mám v mysql nějaké kategorie a taky položky. Nevím ale jak vypsat položky ze všech kategorií které patří pod sebe. Pokud bude třeba aktivní kategorie "Sestavy", tak vypsat všechny položky taky z kategorie "Nove" a "AMD" a "Intel". Pokud bude aktivní "Sestavy > Nové", tak vypsat už jen kategorie "AMD" a "Intel". Atd.. Neporadí někdo? Děkuji
kategorie mám

cat_id    cat_name   cat_parent
1         Sestavy    0
2         Servery    0
3         Nove       1
4         Nove       2
5         Použité    1
6         Použité    2
7         AMD        3
8         Intel      3


a položky mám

item_id    item_name     cat_id
1          Položka A     4
2          Položka B     5
3          Položka C     5
4          Položka D     4
5          Položka E     6
6          Položka F     6
7          Položka G     7
8          Položka H     8

Odpovědi

Josef Kufner avatar 5.4.2014 14:42 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Přidej si do tabulky dva sloupečky typu int: tree_left a tree_right. Udělej nad nima index, aby to bylo rychlé a přečti si o nested sets.

Pak ti stačí pro výběr podstromu prostý výběr všeho s tree_left mezi tree_left a tree_right kořene podstromu.
Hello world ! Segmentation fault (core dumped)
6.4.2014 12:28 JaN
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Ahoj.
Udělej nad nima index, aby to bylo rychlé
Udělej nad nima index ? Můžeš ještě trochu přiblížit ?
Pak ti stačí pro výběr podstromu prostý výběr všeho s tree_left mezi tree_left a tree_right kořene podstromu.
Tato věta mi nedává moc k pochopení, jelikož nejsem znalý dané problematiky. Můžeš prosím v podobě pro začátečníka?

Děkuji
Jendа avatar 6.4.2014 16:38 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Udělej nad nima index ? Můžeš ještě trochu přiblížit ?
CREATE INDEX brm ON tabulka (sloupeček);
Tato věta mi nedává moc k pochopení, jelikož nejsem znalý dané problematiky. Můžeš prosím v podobě pro začátečníka?
Viděl jsi ten obrázek na Wikipedii? Myslím, že je z něj jasné, jak se takové věci vyptává na podmnožiny.
7.4.2014 13:33 JaN
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Viděl jsi ten obrázek na Wikipedii?
Ano, víděl, a dokážeš si představit přidat tam další kategorii? Počítání na dva dny :-(
7.4.2014 14:55 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP

I při tisících kategorií a na CPU z telefonu je to otázka sekundy.
Pokud chceš rychle a dynamicky vytahovat kategorie, tak je to to správné.

Jinak si můžeš zhodnotit sám - a pokud si líný, tak zkus hledat toto.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
7.4.2014 16:17 JaN
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Nepochopil jsi co jsem napsal ;-) Nemyslel jsem rychlost načítání/zpracování ale poukazoval jsem na to, že pokud mít v mysql nějaký strom a budu tam chtít přidat nějaké kategorie tak to znamená všechno přepočítat, což musím patrně udělat ručně. Tak že pokud tam budu mít cca 500 kategorií tak to udělám tak za dva dny, pokud se teda spíš neobjesím :-D Nebo jsem to nepochopil? Dělá se to jinak?
7.4.2014 16:31 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP

Já jo, ty ne - znovu: I při tisících kategorií a na CPU z telefonu je to otázka sekundy.

Kdyby jsi si aspoň přečetl odkazovaný článek do konce, nemohl by jsi napsat, co jsi napsal. Nebo zkusil zapřemýšlet co máš hledat dle nápovědy v druhém odkazu.

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
7.4.2014 18:45 JaN
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Četl jsem to, ale anglicky neumím, tak že jsem možná něco přehlédl.

Stejně to je celý nějaké divné... Vytvořil jsem si tabulku "cat" V ní tyto 4 sloupce s daty
Node	Left	Right	Depth
Clothing	1	22	0
Men's	        2	9	1
Women's	        10	21	1
Suits	        3	8	2
Slacks	        4	5	3
Jackets	        6	7	3
Dresses	        11	16	2
Skirts	        17	18	2
Blouses	        19	20	2
Evening Gowns	12	13	3
Sun Dresses	14	15	3
a při použití tohoto dotazu se mi nevypíše nic. Ani se nedivím, když tam žádné sloupce s názvy Child Tree Parent ani Given nemám :-(
SELECT Child.Node, Child.LEFT, Child.RIGHT
FROM Tree AS Child, Tree AS Parent
WHERE
	Child.Depth = Parent.Depth + 1
	AND Child.LEFT > Parent.LEFT
	AND Child.RIGHT < Parent.RIGHT
	AND Parent.LEFT = 1  -- Given Parent Node Left Index
7.4.2014 18:59 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP

¡Odkazoval jsem český text! Takže na to fakt kašleš…

Dotaz je pro tabulku strom (Tree) a ty tam máš čičiny (cat), pokud to z toho nevyčteš, chce se to podívat na nějakou základní syntaxi SQL.

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
7.4.2014 19:13 JaN
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Snažím se ani nevíš jak moc to potřebuji vyřešit :-( A co ty ostatní názvy Child Parent Given ? Ty mám vzít kde? Posílal jsi český odkaz to vím, ale na něco jiného, řeším ale tohle : https://en.wikipedia.org/wiki/Nested_set_model
Jendа avatar 7.4.2014 20:01 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Najdi si nějakou příručku se základy SQL. Child a Parent jsou přejmenované tabulky (slovíčkem AS), slovo Given se vyskytuje pouze v komentáři.
7.4.2014 20:08 JaN
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Určitě si něco najdu... Jinak už to běží, teda jestli se to tak dá nazvat, vypíšou se pouze dva názvy kategorie, žádný strom se ale nevypsal :-(
7.4.2014 21:44 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP

Snaha není koksovatelná.

Když máš pocit, že jsem ti poslal něco jiného, tak to je pak těžké...

Na závěr, myslím, že nemáš dostatek znalostí a přijde mi, že se po nic ani nepídíš, takže bych ti doporučil se zabývát mým druhým hintem a jí touto cestou.

To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Jendа avatar 7.4.2014 19:56 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
> update `counter_ip` set id=id-100000
...
Příkaz proběhl v pořádku, bylo změněno 8 190 záznamů. (0.126 s)
Pentium III
7.4.2014 20:07 JaN
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
? Ty to taky používáš ten system?
Jendа avatar 7.4.2014 20:41 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Ne, jen jsem ukazoval, že i na slabém počítači trvá update několika tisíc čísel zlomek sekundy - takže i když budeš mít tisíc kategorií, přidání další bude trvat chvilku.
7.4.2014 21:06 JaN
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Aha, díky... a poradíš tedy prosím jak vypsat celý ten strom? Díky
Jendа avatar 7.4.2014 21:26 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Napiš dotaz, ke kterému jsi zatím dospěl…
7.4.2014 21:46 JaN
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
$stmt = $pdo->prepare('SELECT Child.Node, Child.LEFT, Child.RIGHT
                       FROM cat AS Child, cat AS Parent
                       WHERE
                       Child.Depth = Parent.Depth + 1
                       AND Child.LEFT > Parent.LEFT
                       AND Child.RIGHT < Parent.RIGHT
                       AND Parent.LEFT = 1  -- Given Parent Node Left Index');
$stmt->execute();
$rows = $stmt->fetchAll();
foreach ($rows as $row) {
     echo $row['Node'];
}
Jendа avatar 7.4.2014 22:01 Jendа | skóre: 73 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Dělá to přesně to, co by mělo - vypíše děti kategorie č. 1. Jestli to chceš vypsat celé, tak
SELECT Child.Node, Child.LEFT, Child.RIGHT, Child.depth
                       FROM cat AS Child, cat AS Parent
                       WHERE
                       Child.Depth = Parent.Depth + 1
                       AND Child.LEFT > Parent.LEFT
                       AND Child.RIGHT < Parent.RIGHT
			order by Child.LEFT;
Josef Kufner avatar 7.4.2014 22:15 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Btw, na tento způsob uložení stromu do SQL databáze už existuje kopec knihoven, které ty left a right umí spočítat a umí efektivně udělat insert či delete ze stromu. Konkrétní nedoporučím, neboť jsem to kdysi dělal podle toho odkazovaného návodu, ale na pár jsem omylem narazil, když jsem ten návod teď hledal.
Hello world ! Segmentation fault (core dumped)
7.4.2014 21:55 Kit | skóre: 37 | Brno
Rozbalit Rozbalit vše Re: Jak na výpis položek ze stromu kategorie v PHP
Něco podobného jsem kdysi řešil a dospěl jsem k funkčnímu řešení. Ve vstupních datech je klasická "špatná" struktura pouze s odkazem na rodiče, výstupem je například strom diskuzního fóra v HTML.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.