<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Komentarze do wpisu 'blog-programisty.pl'</title>
	<atom:link href="http://blog-programisty.pl/comments/feed" rel="self" type="application/rss+xml" />
	<link>http://blog-programisty.pl</link>
	<description>php + mysql + javascript</description>
	<lastBuildDate>Mon, 20 Jul 2009 21:29:52 +0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Komentarz do wpisu Bezpieczne wyświetlanie adresu e-mail od PanSlaw</title>
		<link>http://blog-programisty.pl/php/bezpieczne-wyswietlanie-adresu-e-mail/comment-page-1#comment-43</link>
		<dc:creator>PanSlaw</dc:creator>
		<pubDate>Mon, 20 Jul 2009 21:29:52 +0000</pubDate>
		<guid isPermaLink="false">http://blog-programisty.pl/?p=47#comment-43</guid>
		<description>Witam. No nareszcie przeczytałem nowy post!!:)) Ostatnio chyba w styczniu pojawiło się coś nowego. Dużo czasu minęło. 
Jak zwykle, będę z uwagą czytał nowe informacje.</description>
		<content:encoded><![CDATA[<p>Witam. No nareszcie przeczytałem nowy post!!:)) Ostatnio chyba w styczniu pojawiło się coś nowego. Dużo czasu minęło.<br />
Jak zwykle, będę z uwagą czytał nowe informacje.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Komentarz do wpisu Drzewo kategorii &#8211; funkcja rekurencyjna od miamaji</title>
		<link>http://blog-programisty.pl/php/drzewo-kategorii-funkcja-rekurencyjna/comment-page-1#comment-36</link>
		<dc:creator>miamaji</dc:creator>
		<pubDate>Wed, 03 Jun 2009 13:33:47 +0000</pubDate>
		<guid isPermaLink="false">http://blog-programisty.pl/?p=31#comment-36</guid>
		<description>Wynik zapytania z funkcji</description>
		<content:encoded><![CDATA[<p>Wynik zapytania z funkcji</p>
]]></content:encoded>
	</item>
	<item>
		<title>Komentarz do wpisu Drzewo kategorii &#8211; funkcja rekurencyjna od admin</title>
		<link>http://blog-programisty.pl/php/drzewo-kategorii-funkcja-rekurencyjna/comment-page-1#comment-35</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Wed, 03 Jun 2009 13:29:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog-programisty.pl/?p=31#comment-35</guid>
		<description>@miamaji: to wynik zapytania do bazy czy wywołania funkcji?
@Zyx: dzięki za uwagi, fakt, że niedługo po publikacji tego wpisu zacząłem borykać się z serią problemów wynikającą z takiej struktury kategorii. o ile przy prostych projektach nie jest źle, to jak dochodzi do konieczności przeszukiwania gałęzi to zaczynają się schody.</description>
		<content:encoded><![CDATA[<p>@miamaji: to wynik zapytania do bazy czy wywołania funkcji?<br />
@Zyx: dzięki za uwagi, fakt, że niedługo po publikacji tego wpisu zacząłem borykać się z serią problemów wynikającą z takiej struktury kategorii. o ile przy prostych projektach nie jest źle, to jak dochodzi do konieczności przeszukiwania gałęzi to zaczynają się schody.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Komentarz do wpisu Drzewo kategorii &#8211; funkcja rekurencyjna od Zyx</title>
		<link>http://blog-programisty.pl/php/drzewo-kategorii-funkcja-rekurencyjna/comment-page-1#comment-34</link>
		<dc:creator>Zyx</dc:creator>
		<pubDate>Wed, 03 Jun 2009 12:49:51 +0000</pubDate>
		<guid isPermaLink="false">http://blog-programisty.pl/?p=31#comment-34</guid>
		<description>Ech, co z tego, że wywołujesz zapytanie jeden raz, kiedy dalej masz rekurencję, i to nienajlepiej napisaną? Kilka wad samego rozwiązania:

1. Chcesz pobrać fragment drzewa, musisz pobrać całe drzewo.
2. Głębokość drzewa jest ograniczona przez sztywne limity PHP głębokości stosu, które przecież nie idą tylko na rekurencję, ale też na wywołania innych funkcji. A jeśli się go przekroczy, to tak... &quot;Nesting level too deep&quot; i działanie skryptu przerwane.
3. W szukaniu ścieżki od danego węzła do korzenia także nie ma lekko - prawie wszystkie pobrane węzły są niepotrzebne, tylko obciążają skrypt.

Ogólnie rozwiązanie ma jedną, poważną wadę: robi problemy tam, gdzie ich nie ma. Przecież to wszystko potrafi zrobić sama baza danych, tylko należy pomyśleć i jej na to pozwolić, a nie bawić się w wyważanie otwartych drzwi w imię nie wiadomo czego. Są dużo lepsze, dużo wydajniejsze algorytmy do obsługi i przechowywania drzew w bazie, a że wymagają pewnej zmiany nawyków i sposobu myślenia - cóż, nikt nie powiedział, że dobre rozwiązania muszą być łatwe i przyjemne.

Mam też sporo uwag co do zaprezentowanego kodu:

1. Czemu nie używasz referencji do pamiętania tablicy z wynikiem?
2. Po co Ci zmienna tymczasowa do zapisywania zapytania? Przecież nic z nim później nie robisz.
3. Porównanie z typem &lt;strong&gt;null&lt;/strong&gt; powinno być robione operatorem ===. W przeciwnym wypadku może zostać złapane nawet coś, co w rzeczywistości nullem nie jest.
4. &lt;em&gt;str_repeat()&lt;/em&gt; - do ad. rysowania pauz pętlą.</description>
		<content:encoded><![CDATA[<p>Ech, co z tego, że wywołujesz zapytanie jeden raz, kiedy dalej masz rekurencję, i to nienajlepiej napisaną? Kilka wad samego rozwiązania:</p>
<p>1. Chcesz pobrać fragment drzewa, musisz pobrać całe drzewo.<br />
2. Głębokość drzewa jest ograniczona przez sztywne limity PHP głębokości stosu, które przecież nie idą tylko na rekurencję, ale też na wywołania innych funkcji. A jeśli się go przekroczy, to tak&#8230; &#8220;Nesting level too deep&#8221; i działanie skryptu przerwane.<br />
3. W szukaniu ścieżki od danego węzła do korzenia także nie ma lekko &#8211; prawie wszystkie pobrane węzły są niepotrzebne, tylko obciążają skrypt.</p>
<p>Ogólnie rozwiązanie ma jedną, poważną wadę: robi problemy tam, gdzie ich nie ma. Przecież to wszystko potrafi zrobić sama baza danych, tylko należy pomyśleć i jej na to pozwolić, a nie bawić się w wyważanie otwartych drzwi w imię nie wiadomo czego. Są dużo lepsze, dużo wydajniejsze algorytmy do obsługi i przechowywania drzew w bazie, a że wymagają pewnej zmiany nawyków i sposobu myślenia &#8211; cóż, nikt nie powiedział, że dobre rozwiązania muszą być łatwe i przyjemne.</p>
<p>Mam też sporo uwag co do zaprezentowanego kodu:</p>
<p>1. Czemu nie używasz referencji do pamiętania tablicy z wynikiem?<br />
2. Po co Ci zmienna tymczasowa do zapisywania zapytania? Przecież nic z nim później nie robisz.<br />
3. Porównanie z typem <strong>null</strong> powinno być robione operatorem ===. W przeciwnym wypadku może zostać złapane nawet coś, co w rzeczywistości nullem nie jest.<br />
4. <em>str_repeat()</em> &#8211; do ad. rysowania pauz pętlą.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Komentarz do wpisu Drzewo kategorii &#8211; funkcja rekurencyjna od miamaji</title>
		<link>http://blog-programisty.pl/php/drzewo-kategorii-funkcja-rekurencyjna/comment-page-1#comment-33</link>
		<dc:creator>miamaji</dc:creator>
		<pubDate>Wed, 03 Jun 2009 12:38:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog-programisty.pl/?p=31#comment-33</guid>
		<description>albo i nie :( 

-Category 1 
-Category 2 
-Category 2.1 
-Category 2.2 
-Category 2.1.1 

dostaje taki wynik</description>
		<content:encoded><![CDATA[<p>albo i nie <img src='http://blog-programisty.pl/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  </p>
<p>-Category 1<br />
-Category 2<br />
-Category 2.1<br />
-Category 2.2<br />
-Category 2.1.1 </p>
<p>dostaje taki wynik</p>
]]></content:encoded>
	</item>
	<item>
		<title>Komentarz do wpisu Drzewo kategorii &#8211; funkcja rekurencyjna od miamaji</title>
		<link>http://blog-programisty.pl/php/drzewo-kategorii-funkcja-rekurencyjna/comment-page-1#comment-32</link>
		<dc:creator>miamaji</dc:creator>
		<pubDate>Wed, 03 Jun 2009 12:36:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog-programisty.pl/?p=31#comment-32</guid>
		<description>DZIAŁA ! Nie pozostaje mi nic jak tylko ładnie podziękować. 

DZIĘKUJE :)</description>
		<content:encoded><![CDATA[<p>DZIAŁA ! Nie pozostaje mi nic jak tylko ładnie podziękować. </p>
<p>DZIĘKUJE <img src='http://blog-programisty.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Komentarz do wpisu Drzewo kategorii &#8211; funkcja rekurencyjna od admin</title>
		<link>http://blog-programisty.pl/php/drzewo-kategorii-funkcja-rekurencyjna/comment-page-1#comment-31</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Wed, 03 Jun 2009 12:01:43 +0000</pubDate>
		<guid isPermaLink="false">http://blog-programisty.pl/?p=31#comment-31</guid>
		<description>oj wycięło mi tagi html&#039;owe, dobra to wpisz samo print_r($kategorie); w ostatniej linijce.</description>
		<content:encoded><![CDATA[<p>oj wycięło mi tagi html&#8217;owe, dobra to wpisz samo print_r($kategorie); w ostatniej linijce.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Komentarz do wpisu Drzewo kategorii &#8211; funkcja rekurencyjna od admin</title>
		<link>http://blog-programisty.pl/php/drzewo-kategorii-funkcja-rekurencyjna/comment-page-1#comment-30</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Wed, 03 Jun 2009 12:00:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog-programisty.pl/?p=31#comment-30</guid>
		<description>odpal poza funkcją te linijki:
$query = “SELECT * FROM dbo.Dashboard_Category ORDER BY Parent_ID, Category_Name”;
$kategorie = getAll($query);
to zobaczysz czy błąd jest w bazie czy nie, ale raczej nie, popraw jeszcze 
$wynik = drzewoKategorii ($kategorie, $kat[&quot;id&quot;], ($zaglebienie+1), $wynik);
na
$wynik = drzewoKategorii ($kategorie, $kat[&quot;ID&quot;], ($zaglebienie+1), $wynik);

jeśli nie pomogło to odpal ten kod i wklej mi wynik:
$query = “SELECT * FROM dbo.Dashboard_Category ORDER BY Parent_ID, Category_Name”;
$kategorie = getAll($query);
echo &#039;&#039;,print_r($kategorie),&#039;&#039;;</description>
		<content:encoded><![CDATA[<p>odpal poza funkcją te linijki:<br />
$query = “SELECT * FROM dbo.Dashboard_Category ORDER BY Parent_ID, Category_Name”;<br />
$kategorie = getAll($query);<br />
to zobaczysz czy błąd jest w bazie czy nie, ale raczej nie, popraw jeszcze<br />
$wynik = drzewoKategorii ($kategorie, $kat["id"], ($zaglebienie+1), $wynik);<br />
na<br />
$wynik = drzewoKategorii ($kategorie, $kat["ID"], ($zaglebienie+1), $wynik);</p>
<p>jeśli nie pomogło to odpal ten kod i wklej mi wynik:<br />
$query = “SELECT * FROM dbo.Dashboard_Category ORDER BY Parent_ID, Category_Name”;<br />
$kategorie = getAll($query);<br />
echo &#8221;,print_r($kategorie),&#8221;;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Komentarz do wpisu Drzewo kategorii &#8211; funkcja rekurencyjna od miamaji</title>
		<link>http://blog-programisty.pl/php/drzewo-kategorii-funkcja-rekurencyjna/comment-page-1#comment-29</link>
		<dc:creator>miamaji</dc:creator>
		<pubDate>Wed, 03 Jun 2009 11:31:23 +0000</pubDate>
		<guid isPermaLink="false">http://blog-programisty.pl/?p=31#comment-29</guid>
		<description>Niestety błąd jest nadal. A może błędu doszukiwać się MSSQL?</description>
		<content:encoded><![CDATA[<p>Niestety błąd jest nadal. A może błędu doszukiwać się MSSQL?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Komentarz do wpisu Drzewo kategorii &#8211; funkcja rekurencyjna od admin</title>
		<link>http://blog-programisty.pl/php/drzewo-kategorii-funkcja-rekurencyjna/comment-page-1#comment-28</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Wed, 03 Jun 2009 11:23:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog-programisty.pl/?p=31#comment-28</guid>
		<description>Pierwsze co się rzuca w oczy to inna nazwa kolumny w tabeli (Parent_ID) a inna w funkcji (rodzic_id), zmień to w funkcji bo to chyba tu leży problem. Zaśmiecać nie zaśmiecasz, od tego są komentarze ;) Napisz czy pomogło, jak coś to będziemy szukać dalej.</description>
		<content:encoded><![CDATA[<p>Pierwsze co się rzuca w oczy to inna nazwa kolumny w tabeli (Parent_ID) a inna w funkcji (rodzic_id), zmień to w funkcji bo to chyba tu leży problem. Zaśmiecać nie zaśmiecasz, od tego są komentarze <img src='http://blog-programisty.pl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Napisz czy pomogło, jak coś to będziemy szukać dalej.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
