|
|
|
| Здравствуйте.
прижали сделать на странице блок, показывающий на какой части страницы находтся пользователь.
Написал функцию:
<?php
private $loc_link = '<a href="?%s">%s</a>';
public function localizator($mid)
{
$pre_sql = 'SELECT `mid`,`parrent`,`name` FROM `menu` WHERE `mid` = %s';
$sql = sprintf($pre_sql, $mid);
$data = $this->db->query($sql);
if(empty($data))return;
$links = array();
while(!is_null($mid))
{
$sql = sprintf($pre_sql, $mid);
$data = $this->db->query($sql);
$links[] = sprintf($this->loc_link, $data[0]['mid'], $data[0]['name']);
$mid = $data[0]['parrent'];
}
$links = array_reverse($links);
return implode(' → ',$links);
}
?>
|
Функция работает.
Задаюсь вопросом - не было бы ли красивее и оптимальнее написать то же самое с помощью рекурсии? | |
|
|
|
|
|
|
|
для: Lstasss
(07.04.2008 в 00:54)
| | А при чем здесь рекурсия | |
|
|
|
|
|
|
|
для: mihdan
(07.04.2008 в 10:22)
| | Рекурсию вообще надо применять как можно реже, она очень ест ресурсы, а при неудачном раскладе и подвесить скрипт | |
|
|
|
|
|
|
|
для: Lstasss
(07.04.2008 в 00:54)
| | Лучше оставить как есть и нагляднее и быстрее. | |
|
|
|
|
|
|
|
для: cheops
(07.04.2008 в 11:50)
| | Спасибо. Немного укоротил =) | |
|
|
|