навигация по шаблону

#php

#php

Вопрос:

Можете ли вы помочь мне заставить эту навигацию по шаблону работать. Мой php не очень хорош. я все еще учусь.

Это мои кошки в mysql

 cats_id   cats_position   cats_parentid 

1            1>                0
2            1>2>              1
3            3>                0
4            1>2>4>            2
  

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

 $pieces = explode(">", $position);

if ($pieces[0] != "")
{

 $result = mysql_query("SELECT * FROM cats
 WHERE cats_id='$pieces[0]'");
 while($row = mysql_fetch_array($result))
   {
$piecesid0 = $row['cats_id'];
$piecesname0 = $row['cats_name'];
$piecesposition0 = $row['cats_position'];
   }
}
if ($pieces[1] != "")
{
 $result = mysql_query("SELECT * FROM cats
 WHERE cats_id='$pieces[1]'");
 while($row = mysql_fetch_array($result))
   {
$piecesid1 = $row['cats_id'];
$piecesname1 = $row['cats_name'];
$piecesposition1 = $row['cats_position'];
   }
}
if ($pieces[2] != "")
{
 $result = mysql_query("SELECT * FROM cats
 WHERE cats_id='$pieces[2]'");
 while($row = mysql_fetch_array($result))
   {
$piecesid2 = $row['cats_id'];
$piecesname2 = $row['cats_name'];
$piecesposition2 = $row['cats_position'];
   }
}
if ($pieces[3] != "")
{
 $result = mysql_query("SELECT * FROM cats
 WHERE cats_id='$pieces[3]'");
 while($row = mysql_fetch_array($result))
   {
$piecesid3 = $row['cats_id'];
$piecesname3 = $row['cats_name'];
$piecesposition3 = $row['cats_position'];
   }
}
?>
<a href="index.php">Index</a> > 

<a href="cats.php?cat=<?=$piecesid0;?>amp;parent=0amp;position=<?=$piecesposition0;?>"><?=$piecesname0;?></a>

<?
If ($piecesid1 != "")
{
?>
> <a href="cats.php?cat=<?=$piecesid1;?>amp;parent=<?=$piecesid0;?>amp;position=<?=$piecesposition1;?>"><?=$piecesname1;?></a>
<?
}
?>
<?
If ($piecesid2 != "")
{
?>
> <a href="cats.php?cat=<?=$piecesid2;?>amp;parent=<?=$piecesid1;?>amp;position=<?=$piecesposition2;?>"><?=$piecesname2;?></a>
<?
}
?>
<?
If ($piecesid3 != "")
{
?>
> <a href="cats.php?cat=<?=$piecesid3;?>amp;parent=<?=$piecesid2;?>amp;position=<?=$piecesposition3;?>"><?=$piecesname3;?></a>
<?
}
?>
  

Комментарии:

1. Версия LOLCATS: у меня проблемы с breadcrubmz

Ответ №1:

Взгляните здесь на модель вложенного набора:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql

Вот как CakePHP реализовал поведение дерева, которое я использую для хлебных крошек. Они добавили столбец parent_id в качестве расширенной версии вложенного набора.

Если это слишком большой вес, вы можете использовать модель списка смежности: http://kod34fr33.wordpress.com/2008/05/06/adjacency-list-tree-on-mysql