|
|
|
|
|
для: Dizels
(21.02.2008 в 19:28)
| | Если parent = 0 (ну или 1 как там у тебя) то это каталог (выделяем его как нужно), а все остальные - это подкаталоги | |
|
|
|
|
|
|
|
для: Dizels
(21.02.2008 в 19:28)
| | Тогда проще
$query = "SELECT * FROM catalog WHERE `id_parent`='0';";
$result = mysql_query($query);
if (mysql_num_rows($result)>0)
{
while($catalog = mysql_fetch_assoc($result))
{
echo "<big><a href={$catalog[id_catalog]}>{$catalog[name]}</a></big><br>";
$query = "SELECT * FROM catalog WHERE `id_parent`='".$catalog[id_catalog]."';";
$result_2 = mysql_query($query);
if (mysql_num_rows($result_2)>0)
{
while($sub_catalog = mysql_fetch_assoc($result_2))
{
echo " <a href={$sub_catalog[id_catalog]}>{$sub_catalog[name]}</a> ";
}
}
else
echo "No Subcategories";
echo "<br>";
}
}
|
| |
|
|
|
|
|
|
|
для: MIchail1982
(21.02.2008 в 17:58)
| | А как тогда сделать так, чтобы он выводил только подкаталоги? Т.е. сами каатлоги не выводил.
P.S. просто мне нужно чтобы визуально каталоги отличались от подкаталогов.
Да и сам вывод нужно настроить более красиво (в таблицу все загнать, а то сильно большой список получается, хочу его поделить).
Т.е. в результате я хочу получить нечто вроде Яндекс каталога по структуре, как такое сделать? | |
|
|
|
|
|
|
|
для: Dizels
(21.02.2008 в 17:22)
| | да, это называется рекурсия
раньше этот код выводил любое количество вложений | |
|
|
|
|
|
|
|
для: Dizels
(21.02.2008 в 16:50)
| | и вот в функции еще не понятно, она что сама себя вызывает? | |
|
|
|
|
|
|
|
для: Dizels
(20.02.2008 в 19:46)
| | Начал разбираться в коде и не все понятно, прошу объяснить:
function pre($data_assoc,$i,$parsed)
{
if (!in_array($data_assoc[$i][\'id_catalog\'],$parsed))
{
echo \"<li><a href=?id_cat={$data_assoc[$i][\'id_catalog\']}>\",$data_assoc[$i][\'name\'],\"</a></li>\";
$parsed[] = $data_assoc[$i][\'id_catalog\'];
for ($j=1;$j<=count($data_assoc);$j++)
{
if($data_assoc[$i][\'id_catalog\']==$data_assoc[$j][\'id_parent\'])
{
echo \"<ul>\";
$parsed = pre($data_assoc,$j,$parsed);
echo \"</ul>\";
}
}
}
return $parsed;
}
|
Поясните пожалуйста поэтапно действия этой функции
$parsed = pre($data_assoc,$row[\'id_catalog\']-1,$parsed);
|
а так же то, что происходит когда мы ее вызываем. | |
|
|
|
|
|
|
|
для: MIchail1982
(20.02.2008 в 17:54)
| | MIchail1982, большое человеческое спасибо!!! | |
|
|
|
|
|
|
|
для: Dizels
(20.02.2008 в 17:39)
| |
echo "<li><a href=?id_catalog={$data_assoc[$i]['id_catalog']}>",$data_assoc[$i]['name'],"</a></li>";
|
| |
|
|
|
|
|
|
|
для: MIchail1982
(20.02.2008 в 17:34)
| | передается ссылка вида:
http://localhost/enterprise/index.php?id_catalog=Array['id_catalog']
|
:( | |
|
|
|
|
|
|
|
для: Dizels
(20.02.2008 в 16:46)
| | вроди так
function pre($data_assoc,$i,$parsed)
{
if (!in_array($data_assoc[$i]['id_catalog'],$parsed))
{
echo "<li><a href=?id_catalog=$data_assoc[$i]['id_catalog']>",$data_assoc[$i]['name'],"</a></li>";
$parsed[] = $data_assoc[$i]['id_catalog'];
for ($j=1;$j<=count($data_assoc);$j++)
{
if($data_assoc[$i]['id_catalog']==$data_assoc[$j]['id_parent'])
{
echo "<ul>";
$parsed = pre($data_assoc,$j,$parsed);
echo "</ul>";
}
}
}
return $parsed;
}
|
| |
|
|
|
|