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

Форум PHP

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

 

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

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

тема: Рекурсия проблемы

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

 
 автор: ride   (25.09.2009 в 17:32)   письмо автору
 
   для: neokortex   (24.09.2009 в 15:38)
 

повторюсь...
$links.=$arra['name_table'].'<br />'.printt($arra['id_table']);
в запросе у вас tables или table?

  Ответить  
 
 автор: Rolex   (25.09.2009 в 16:47)   письмо автору
 
   для: neokortex   (24.09.2009 в 15:38)
 

Здравствуйте! Может быть стоит задуматься над архитектурой БД, перестроить её и сделать всё проще? )))

  Ответить  
 
 автор: Trianon   (24.09.2009 в 18:43)   письмо автору
 
   для: neokortex   (24.09.2009 в 15:38)
 

метаданные БД не должны являться данными прикладных процессов.
Если, конечно, Вы не пишете СУБД или клиент ею управляющий.

никаких name_table, table_link и прочей ереси.

  Ответить  
 
 автор: neokortex   (24.09.2009 в 15:38)   письмо автору
 
 

Задача такая - в базе хранятся данные, таким образом что одна таблица может ссылаться на другую.
Чтобы реализовать каталог (вложенная струтура)
То есть таблицы вида Аа, Аб, Ав находится в АА. Например, значение table_link таблицы Аа =1, а значение id_table АА также = 1

Так вот, ожидаемый результат работы данной функции - вывод всех "каталогов" с их вложенными подкаталогами:

АА
Аа
Аб
Ав
ББ
ВВ
Ва
Вв
ГГ
ДД
Да
Дб
Дв
Дг

но она сейчас прорабатывает только "верхний" уровень:
АА
ББ
ВВ
ГГ
ДД


Причем если внутри функции выводить echo результат - то показывает то что нужно


    function printt($n)
        {
        $links='';
        $Ss=mysql_query("SELECT * FROM `tables` WHERE `table_link`='".$n."' ORDER BY `table`.`name_table` ASC;");
        while ($arra=mysql_fetch_array($Ss))
            {
            //echo $arra['name_table'].'<br />'; // если раскомментировать эту строку - то получится ожидаемый результат
            $links.=$arra['name_table'].'<br />'; // а вот это показывает только самый верхний уровень (первая функция где 0)
            $N=$arra['id_table'];
            printt($N);
            };
        return $links;
        };
    $links=printt(0);

echo $links;



Не могу найти ошибку. Помогите пожалуйста

  Ответить  

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

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

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