|
|
|
|
|
для: neokortex
(24.09.2009 в 15:38)
| | повторюсь...
$links.=$arra['name_table'].'<br />'.printt($arra['id_table']);
в запросе у вас tables или table? | |
|
|
|
|
|
|
|
для: neokortex
(24.09.2009 в 15:38)
| | Здравствуйте! Может быть стоит задуматься над архитектурой БД, перестроить её и сделать всё проще? ))) | |
|
|
|
|
|
|
|
для: neokortex
(24.09.2009 в 15:38)
| | метаданные БД не должны являться данными прикладных процессов.
Если, конечно, Вы не пишете СУБД или клиент ею управляющий.
никаких name_table, table_link и прочей ереси. | |
|
|
|
|
|
|
| Задача такая - в базе хранятся данные, таким образом что одна таблица может ссылаться на другую.
Чтобы реализовать каталог (вложенная струтура)
То есть таблицы вида Аа, Аб, Ав находится в АА. Например, значение 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;
|
Не могу найти ошибку. Помогите пожалуйста | |
|
|
|
|