|
|
|
|
|
для: virtus
(18.05.2006 в 18:06)
| | ПОДСКАЖИТЕ, пожалуйста :( | |
|
|
|
|
|
|
|
для: Axxil
(18.05.2006 в 17:24)
| | Спасибо, только через ГЕТ не работает | |
|
|
|
|
|
|
|
для: Axxil
(18.05.2006 в 17:54)
| | спасибо большое за помощь!
в данном релизе :) выводится нужные родительные рубрики, НО как только появляется любой $_GET['level'] - выводятся все сразу подрубрики!!! А НЕОБХОДИМО ТОЛЬКО ПОДРУБРИКУ ТЕКУЩЕГО РОДИТЕЛЯ :( | |
|
|
|
|
|
|
|
для: virtus
(18.05.2006 в 17:45)
| | Само собой не выводит :)
Надо добавить вызов ф-ии tree
<?
$otstup="";
$level=0;
function tree($parent, $otstup, $level)
{
if ($level>$_GET['level']) return;
$sql="SELECT * FROM table WHERE parent_id=$parent"; //выбираем все ветви данного узла
$result=mysql_query($sql);
while($data=mysql_fetch_array)
{
echo $otstup.$data['text']."<br>"; //выводим текущий узел
tree($data['parent_id'], $otstup." ", $level++); //рекурсивно вызываем саму себя
}
}
echo "Корень<br>";
tree(0, $otstup);
?>
|
Да, забыл ещё одно поправление
Вместо $data['parent_id'] надо $data['catid'] из вашего первого поста. Так как в качестве родителя следующего по вложенности узла не может выступать родительтекущего. | |
|
|
|
|
|
|
|
для: Axxil
(18.05.2006 в 17:30)
| | ОШИБКА: ничего не отображает вообще!
если вот эту строку
tree($data['parent_id'], $otstup." ", $level++); //рекурсивно вызываем саму себя
|
перенести за
то скрипт не понимает же что $data['parent_id'] - чему-то равно...
как поступить? | |
|
|
|
|
|
|
|
для: Loki
(18.05.2006 в 15:59)
| | Мда... Не так страшен чёрт как говорится.
Только маленькая поправка. Иначе получается бесконечная лесенка.
<?
function tree($parent, $otstup, $level)
{
if ($level>$_GET['level']) return;
$sql="SELECT * FROM table WHERE parent_id=$parent"; //выбираем все ветви данного узла
$result=mysql_query($sql);
while($data=mysql_fetch_array)
{
echo $otstup.$data['text']."<br>"; //выводим текущий узел
tree($data['parent_id'], $otstup." ", $level++); //рекурсивно вызываем саму себя
}
}
?>
|
| |
|
|
|
|
|
|
|
для: virtus
(18.05.2006 в 16:26)
| | Ну и добавьте третий аргумент в вызове функции tree
| |
|
|
|
|
|
|
|
для: Loki
(18.05.2006 в 15:59)
| | ДА !! уровень вложености!!!
Warning: Missing argument 3 for tree() | |
|
|
|
|
|
|
|
для: virtus
(18.05.2006 в 15:33)
| | Тогда вообще просто:
<?
if (!isset($_GET['id'])) $id=0;
else $id=intval($_GET['id']);
$sql="SELECT * FROM table WHERE parent_id=$id";
$result=mysql_query($sql);
while ($data=mysq_fetch_array($result))
{
echo "<a href=".$_SERVER['PHPSELF']."?id=".$data['id'].">".$data['text']."</a><br>";
}
|
а... кажись дошло чего надо... надо ограничить уровень вложенности?
тогда так:
<?
$otstup="";
$level=0;
function tree($parent, $otstup, $level)
{
if ($level>$_GET['level']) return;
$sql="SELECT * FROM table WHERE parent_id=$parent"; //выбираем все ветви данного узла
$result=mysql_query($sql);
while($data=mysql_fetch_array)
{
echo $otstup.$data['text']."<br>"; //выводим текущий узел
$otstup.=" "; //увеличиваем отступ
tree($data['parent_id'], $otstup, $level++); //рекурсивно вызываем саму себя
}
}
echo "Корень<br>";
tree(0, $otstup);
|
Через get передаем уровень вложенности. И нигде его хранить не надо. | |
|
|
|
|
|
|
|
для: Loki
(18.05.2006 в 15:12)
| | Чуток не так! этот - выводит все дерево сразу!
А мне нужно так: вывести все где pidcat=0 (pidcat=0 ЭТО значит он родитель)
а когда будет известен idcat (т.е. получу его через ГЕТ : /index.php?idcat=5) - вывести все где pidcat=0 А ПОД 5 - вывести все где pidcat=5 т.е. все подкатегории этого раздела.
ВОт, вроде понятно пояснил? | |
|
|
|
|