Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.
Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.
O co jde.
V mysql mám takové uspořádání
ID___NAME__________________PARENT_ID 1____Kategorie zboží_______0 2____Procesory_____________1 3____Intel_________________2 4____Pentium IV____________3 5____Celeron_______________3 6____AMD___________________2a potřebuji v php napsat funkci, která dokáže vypsat ty kategorie v takovém tvaru.
Kategorie zboží > Procesory > Intel > Pentium IV Kategorie zboží > Procesory > Intel > Celeron Kategorie zboží > Procesory > AMDMě se podařilo sehnat jen kategorie které se vypisují pod sebe. viz kód
function getTree($parent, $level) {
$result = mysql_query('SELECT * FROM TREE WHERE PARENT_ID='.$parent);
while ($row = mysql_fetch_assoc($result)) {
echo str_repeat(" ",$level).$row['NAME']."
";
getTree($row['ID'], $level++);
}
}
Nepomohl by mi s tím nějaký hodně zkušený profesionál, jelikož už vím, že to je zatraceně těžké jestli vůbec možné:((
Předem děkuji za snahu pomociJe to z tohoto článku: zde
function getTree($parent, $path) {
$result = mysql_query('SELECT * FROM TREE WHERE PARENT_ID='.$parent);
if (mysql_num_rows($result) == 0) {
echo implode('>', $path) . "\n";
}
while ($row = mysql_fetch_assoc($result)) {
getTree($row['ID'], array_merge($path, array($row['NAME']));
}
}
Psáno z hlavy, netestováno, možná je to úplná kravina.
Ale třeba to aspoň inspiruje.
Psáno z hlavy, netestováno, možná je to úplná kravina.Když zavolám tu funkciAle třeba to aspoň inspiruje.
getTree($parent, $path);tak co je ten druhý parametr $path ? tady akorát chyběla závorka, ale stejně to nic nevypíše :(
getTree($row['ID'], array_merge($path, array($row['NAME'])));v té první funkci jsem to volal pro vypsání všech kategorii takto
getTree(0, 0);a teď to mám volat jak? Děkuji
getTree(0, array());
Mělo by se to volat s prázdným polem.Když to takto zavolám, tak dostanu na výstupu tohlegetTree(0, array());
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes)
function getTree($parent, $path) {
$result = mysql_query('SELECT * FROM TREE WHERE PARENT_ID='.$parent)
or die(mysql_error());
if (mysql_num_rows($result) == 0) {
echo implode('>', $path) . "\n";
}
while ($row = mysql_fetch_assoc($result)) {
getTree($row['ID'], array_merge($path, array($row['NAME'])));
}
}
mysql_connect("localhost", "user", "pass") or die(mysql_error());
mysql_select_db("dbname") or die(mysql_error());
getTree(0, array());
tak co je ten druhý parametr $path ?Pole, ve kterém je popsána cesta k aktuálnímu zanoření do rekurze. Takže na začátku by měla být prázdná, v jistém okamžiku to bude třeba:
$path == array( 'Kategorie zboží', 'Procesory', 'Intel' )A zavolá se
getTree(3, $path), což by mělo zařídit vypsání
Kategorie zboží > Procesory > Intel > Pentium IV Kategorie zboží > Procesory > Intel > Celeron
Kategorie zboží
Procesory
Intel
Pentium IV
Celeron
AMD
Takže nejde jen o odstranění nového řádku, ale o mírně komplexnější změnu zápisu.
mysql_query('SET SESSION group_concat_max_len = max_allowed_packet');
$result = mysql_query('SELECT GROUP_CONCAT( tree2.name ORDER BY tree2.lft ASC SEPARATOR " > " ) as path FROM tree LEFT JOIN tree tree2 ON tree2.lft <= tree.lft WHERE tree.RGT = tree.LFT +1 GROUP BY tree.id');
while ($row = mysql_fetch_assoc($result)) {
echo $row['path'];
}
SELECT
GROUP_CONCAT( tree2.name ORDER BY tree2.lft ASC SEPARATOR " > " ) as path
FROM
tree
LEFT JOIN tree tree2 ON tree2.lft <= tree.lft AND tree2.rgt >= tree.rgt
WHERE
tree.RGT = tree.LFT + 1
GROUP BY
tree.id
ALTER TABLE TREE ADD LFT INT NOT NULL DEFAULT 0; ALTER TABLE TREE ADD RGT INT NOT NULL DEFAULT 0;a po přidání položky spustit
function rebuildTree($parent, $left) {
$right = $left+1;
$result = mysql_query('SELECT ID, NAME FROM TREE WHERE PARENT_ID='.$parent);
while ($row = mysql_fetch_array($result)) {
$right = rebuild_tree($row['ID'], $right);
}
mysql_query('UPDATE TREE SET LFT='.$left.', RGT='.$right.' WHERE ID='.$parent);
return $right+1;
}
pokud to uděláš, do budoucna si docela dost pomůžeš.
pokud to uděláš, do budoucna si docela dost pomůžeš.Tak jsem vložil dva sql dotazy do mysql, vytvořil se nový sloupec RGT a LFT s hodnotou 0 pak jsem spustil tu funkci rebuildTree, která přepsala v mysql hodnotu sloupcu RGT a LFT zřejmě náhodnýma číslama :)) Pak jsem spustil ten výpis, všechno se načetlo ale je to nějaké neseřazené/rozházané. Nešlo by spustit nějak v obráceném pořadí? TO by snad mohlo být lepší pro orientaci, nebo prostě to brát od nejmenšího id :( Děkuji
A co přesně to vypisuje? A s jakými parametry jsu spustil rebuildTree?spouštěl jsem to takto rebuildTree(0, 0); a ten výpis je seřazený jakoby od nejvyššího id...
Jak přesně to vypíše a jak by to mělo vypsat, u mě to vypadá v pořádku, máš tam to upravené query?Asi bude problém někde jinde, mám v tom teď hokej, musím to pořádně vyzkoušet a dám vědět. Ale ještě prosím jedna věc, snažím se přijít na to, co ta čísla v LFT a RGT znamenaji :( Když přidám nebo smažu nějakou kategorii musím spustit znova tu funkci která vložila ta čísla v mysql? Díky
Kategorie zboží > Procesory > Intel > Pentium IV Kategorie zboží > Procesory > AMD Ovoce > Jablko > červené Kategorie zboží > Procesory > Intel > Celeron > Quadromísto
Kategorie zboží > Procesory > Intel > Pentium IV Kategorie zboží > Procesory > AMD Kategorie zboží > Procesory > Intel > Celeron > Quadro Ovoce > Jablko > červené
Jak přesně to vypíše a jak by to mělo vypsat, u mě to vypadá v pořádku, máš tam to upravené query?upravené query ta mám... a ten výpis by měl být asi takový, popořadě..
Kategorie zboží > Procesory > Intel > Pentium IV Kategorie zboží > Procesory > Intel > Celeron > Quadro Kategorie zboží > Procesory > AMD Ovoce > Jablko > červené
Tiskni
Sdílej: