Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Select

Сообщения:  [1-10]   [11-11] 

 
 автор: Port_Artur1   (13.12.2007 в 22:10)   письмо автору
 
   для: sim5   (13.12.2007 в 20:57)
 

Функция называется рекурсивной, если во время ее обработки возникает ее повторный вызов, либо непосредственно, либо косвенно, путем цепочки вызовов других функций.

   
 
 автор: sim5   (13.12.2007 в 20:57)   письмо автору
 
   для: Port_Artur1   (13.12.2007 в 20:43)
 

Если вы не понимаете рекурсии, делайте выборку родителей, их потомков, забирайте записи у этих потомков. Это можете сделать последовательно, это вам понятно будет?

PS. Точно, перепутал кое что, кое с чем, если еще не читали до постскрипт, не обращайте внимания, это я про себя, так как удалил немного из своего ответа. :)

   
 
 автор: Port_Artur1   (13.12.2007 в 20:43)   письмо автору
 
   для: sim5   (13.12.2007 в 20:33)
 

Блин а кто может объснить?

   
 
 автор: sim5   (13.12.2007 в 20:33)   письмо автору
 
   для: Port_Artur1   (13.12.2007 в 20:21)
 

Если вы не понимаете сути рекурсивного вызова, забудтьте тогда об этом, иначе если у вас будут несколько другие данные, вы опять ничего не сможете сделать. Делайте вместо рекурсии несколько запросов к базе и стройте дерево так, как это понятно вам.

   
 
 автор: Port_Artur1   (13.12.2007 в 20:21)   письмо автору
 
   для: sim5   (13.12.2007 в 19:52)
 


while($row = mysql_fetch_assoc($res)){
$tree[$row[ParentID]][$row[ID]] = $row[Title];
}


Чтобы посмотреть что же лежит в массиве можно просто выполнить print_r($tree) и будет вам счастье! Для чего я заделал $row[ID] на второй уровень? Для связи с ParentID, действуем таже как если бы мы просто выполняли запросы в рекурсии, но мы же орудуем массивами...

function ShowTree($tree, $pid=0){
echo <ul type=square>;
foreach( $tree as $id=>$root){
if($pid!=$id)continue;
if(count($root)){
foreach($root as $key => $title){
echo <li>{$title};
if(count($tree[$key]))ShowTree($tree,$key);
}
}
}
echo </ul>;
}


foreach( $tree as $id=>$root) - блин не пойму смысл массив то двухмерный что тогда $id и $root

   
 
 автор: sim5   (13.12.2007 в 19:52)   письмо автору
 
   для: Port_Artur1   (13.12.2007 в 19:49)
 

Если вы о статье по ссылке, то куда уж подробнее, да там и не только слова, но и пример.

   
 
 автор: Port_Artur1   (13.12.2007 в 19:49)   письмо автору
 
   для: sim5   (13.12.2007 в 17:47)
 

Блин а можно на словах подробнее чото я не совсем точнее совсем ничегоне понял (ну бывает и такое)

   
 
 автор: sim5   (13.12.2007 в 17:47)   письмо автору
 
   для: Port_Artur1   (13.12.2007 в 16:50)
 

Ну тогда не знаю, что и сказать, если не понимаете. Но вот так хотя бы, может это яснее будет.

PS. Вопрос (попутно) для cheops || Trianon: читал о рекурсивных запросах в SQL Server, типа:

WITH 
   tree (data, id) 
   AS (SELECT VHC_NAME, VHC_ID_FATHER
      FROM T_VEHICULE 
      WHERE VHC_NAME = 'MOTORCYCLE' 
      UNION ALL 
      SELECT VHC_NAME, VHC_ID_FATHER 
      FROM T_VEHICULE V 
          INNER JOIN tree t 
           ON t.id = V.VHC_ID) SELECT * 
FROM tree

а в MySQL подобное не планируется?

   
 
 автор: Port_Artur1   (13.12.2007 в 16:50)   письмо автору
 
   для: sim5   (13.12.2007 в 16:40)
 

А можно суть идеи
А то в Яндексе нашёл только определения, а шо это такое так и не понял - первый раз вообще такое слышу.

   
 
 автор: sim5   (13.12.2007 в 16:40)   письмо автору
 
   для: Port_Artur1   (13.12.2007 в 16:36)
 

Использовать рекурсивный вызов.

   

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования