Рекурсивная выборка с бд - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Thu, 09 Jan 2025 22:26:24 +0300 все хорошо - просто не те параметры передавал в запрос<br> <pre class="prettyprint"> public function loadSections ($uid = 0, $step = 0) { $uid = (int)abs($uid); $q = &quot;SELECT * FROM i_sec WHERE uid=&#039;&quot;.$uid.&quot;&#039;&quot;; foreach ($this-&gt;db-&gt;query($q) as $sec ){ $count = $this-&gt;db-&gt;query(&quot;SELECT COUNT(*) FROM i_sec WHERE uid=&#039;&quot;.$sec&#91;&#039;id&#039;].&quot;&#039;&quot;)-&gt;fetch(); echo str_repeat(&#039;-&#039;,$step); echo $sec&#91;&#039;name&#039;].&#039;&lt;br/&gt;&#039;; if ($count&#91;0]){ $this-&gt;loadSections($sec&#91;&#039;id&#039;],$step+1); } else { $this-&gt;loadSections($sec&#91;&#039;id&#039;],$step-1); } } } </pre> <br> будут предложения по усовершенствованию кода?<br> <br> <em><span style="font-size:x-small">Добавлено через 03:28 сек.</span></em><br> нужно ли кешовать если будет ~30записей? https://visavi.net/topics/33419/576430 Рекурсивная выборка с бд Виталий Mon, 23 Jul 2012 15:58:53 +0400 Сообщения https://visavi.net/topics/33419/576430 <pre class="prettyprint"> public function loadSections ($uid = 0, $step = 0) { $uid = (int)abs($uid); $q = &quot;SELECT * FROM i_sec WHERE uid=&#039;&quot;.$uid.&quot;&#039;&quot;; echo str_repeat(&#039;-&#039;,$step); foreach ($this-&gt;db-&gt;query($q) as $sec ){ $count = $this-&gt;db-&gt;query(&quot;SELECT COUNT(*) FROM i_sec WHERE uid=&#039;&quot;.$uid.&quot;&#039;&quot;)-&gt;fetch(); echo $sec&#91;&#039;name&#039;].&#039;&lt;br/&gt;&#039;; if ($count&#91;0]){ $this-&gt;loadSections($sec&#91;&#039;id&#039;],$step+1); } else { $this-&gt;loadSections($sec&#91;&#039;id&#039;],$step-1); } } }</pre> родил что то такое - но на каком то вхождению начинает некоректо работать, м.б есть у кого желание моз потренировать?) https://visavi.net/topics/33419/576422 Рекурсивная выборка с бд Виталий Mon, 23 Jul 2012 15:35:11 +0400 Сообщения https://visavi.net/topics/33419/576422 10. <strong>Кевин Митник_HHTeam</strong>, зато быстрее. https://visavi.net/topics/33419/576378 Рекурсивная выборка с бд Петр Mon, 23 Jul 2012 13:34:51 +0400 Сообщения https://visavi.net/topics/33419/576378 9. какраз етот способ пришол утром))..<br> буду работать... https://visavi.net/topics/33419/576374 Рекурсивная выборка с бд Виталий Mon, 23 Jul 2012 13:15:57 +0400 Сообщения https://visavi.net/topics/33419/576374 ресурсоемко, при большем количестве данных. https://visavi.net/topics/33419/576369 Рекурсивная выборка с бд Кевин Митник Mon, 23 Jul 2012 13:02:11 +0400 Сообщения https://visavi.net/topics/33419/576369 Если нужно построить дерево всех разделов, то наверняка проще будет разом извлечь все данные и разбирать с помощью php. https://visavi.net/topics/33419/576332 Рекурсивная выборка с бд Петр Mon, 23 Jul 2012 10:46:23 +0400 Сообщения https://visavi.net/topics/33419/576332 6. наверное нет - поскольку я их создавал и не знаю что ето)))<br> 7. ммм там столько кода, проще самому подумать...) https://visavi.net/topics/33419/576277 Рекурсивная выборка с бд Виталий Mon, 23 Jul 2012 03:06:49 +0400 Сообщения https://visavi.net/topics/33419/576277 5. <strong>id1</strong>, дык там с базой https://visavi.net/topics/33419/576270 Рекурсивная выборка с бд iNeeXT Mon, 23 Jul 2012 02:40:07 +0400 Сообщения https://visavi.net/topics/33419/576270 в таблицах связи организованы вторичными индексами? если да, то просто рекурсивная функция выборки https://visavi.net/topics/33419/576268 Рекурсивная выборка с бд Кевин Митник Mon, 23 Jul 2012 01:59:03 +0400 Сообщения https://visavi.net/topics/33419/576268 4. ммм ето с директориями, я слово &quot;папка&quot; образно использовал... у меня та же задача но с БД https://visavi.net/topics/33419/576265 Рекурсивная выборка с бд Виталий Mon, 23 Jul 2012 01:30:40 +0400 Сообщения https://visavi.net/topics/33419/576265 По-моему то что нужно <a href="http://www.askdev.ru/question/3553/%D0%9F%D1%80%D0%BE-%D0%B8%D0%B5%D1%80%D0%B0%D1%80%D1%85%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85/" target="_blank" rel="nofollow">http://www.askdev.ru/question/3553/Про-иерархический-вывод-данных/</a> https://visavi.net/topics/33419/576264 Рекурсивная выборка с бд iNeeXT Mon, 23 Jul 2012 01:13:34 +0400 Сообщения https://visavi.net/topics/33419/576264 2. дерево розделов, подрозделов, к ним всем страницы https://visavi.net/topics/33419/576262 Рекурсивная выборка с бд Виталий Mon, 23 Jul 2012 00:47:58 +0400 Сообщения https://visavi.net/topics/33419/576262 типа дерево сообщений вывести? https://visavi.net/topics/33419/576257 Рекурсивная выборка с бд Михаил Mon, 23 Jul 2012 00:18:11 +0400 Сообщения https://visavi.net/topics/33419/576257 Честно говоря не хочется &quot;***кодить&quot; и поетому прошу помощи у более опытных php программистов.<br> Есть таблица i_sec структура(id, name, uid)<br> Также есть таблица i_page(id,uid,title,name)<br> Вообще i_sec как-бы папки(uid=0 это главные а дальше нужно рекурсивно до потери пульса выводить папки с uid прикрепленным к пред. папке )<br> Также к ним выводить страницы с i_page ( uid страницы не может быть 0 соответственно прикрепляется хоть к какой то папке.<br> Эх буду рад если кто нибудь поймет, а если поможет то вообще день удался <img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> https://visavi.net/topics/33419/576248 Рекурсивная выборка с бд Виталий Sun, 22 Jul 2012 23:46:00 +0400 Сообщения https://visavi.net/topics/33419/576248