Посмотрите пожалуйста мою ф-цию! Работает но не правельно :(

medalist

Новичок
Посмотрите пожалуйста мою ф-цию! Работает но не правельно :(

Пишу свою CMS так сказать для тренеровки, использую очень простой класс для реализации шаблонов
PHP:
<?php
class parse_class
    {
    var $vars     = array();
    var $template;

    function get_tpl($tpl_name)
      {
      if(empty($tpl_name) || !file_exists($tpl_name))
        {
        return false;
        }
      else
        {
        $this->template  = file_get_contents($tpl_name);
        }
      }
    function set_tpl($key,$var)
      {
      $this->vars[$key] = $var;
      }
    function tpl_parse()
      {
      foreach($this->vars as $find => $replace)
             {
             $this->template = str_replace($find, $replace, $this->template);
             }
      }
    }
$parse = new parse_class;
?>
дальше обьявляеться тег
PHP:
$parse->set_tpl('{MENU}',template_menu($lang));
а вот сама функция которая генерит карту сайта
PHP:
function template_map($lang, $prefix = "")
{	$tempcontent .= "";
	$query = "SELECT * FROM categories WHERE parent = '$lang'  ORDER BY sorting DESC";
	$result = mysql_query($query);
	while ($row = mysql_fetch_array($result))
	{
		$tempcontent .=  $prefix;

		if ($row['invisible'] != "checked")
		{
			$tempcontent .=   "<a href='?page=".$row['id']."'>".$row['title']."</a>";
			$tempcontent .= "<br>";
			template_map($row['id'], $prefix."&nbsp;&nbsp;");
		}
		else
		{
         $tempcontent .= "";
		}
	}
return $tempcontent;

}
и вот что она выводит

Добро пожаловать!
Welcome

а должна выводить

Апартаменты
1 - комнатные
2 - комнатные
3 - комнатные
4 - комнатные
Услуги и цены
О компании
О Киеве
Контакты

пс. вот ета функция выводит все как надо
PHP:
function template_map2($lang, $prefix = "")
{	$query = "SELECT * FROM categories WHERE parent = '$lang'  ORDER BY sorting DESC";
	$result = mysql_query($query);
	while ($row = mysql_fetch_array($result))
	{
		echo $prefix;

		if ($row['invisible'] != "checked")
		{
			echo  "<a href='?page=".$row['id']."'>".$row['title']."</a>";
			echo "<br>";
			template_map2($row['id'], $prefix."&nbsp;&nbsp;");
		}
		else
		{
         echo  "";
		}
	}
}
но она написана через echo и то что она выводит выводиться в самом начале стр. сайта :(

Подскажите где и что я не так зделал?
 

medalist

Новичок
Автор оригинала: zerkms
phpfaq.ru/debug
При чем тут дебаг? Он работает но хренова работает не так как должен... Та же самая функция только echo вместо $tempcontent отлично работает! Просто не могу понять почему так :(
 

Wicked

Новичок
Там дана вся необходимая информация для того, чтобы ты самостоятельно смог найти причину того, почему у тебя одна функция все выводит как надо, а другая, отличающаяся от первой только способом вывода, не выводит все как надо. Это и есть процесс дебага. Еще вопросы?
 

dimagolov

Новичок
medalist
зачем ты рекурсию делаешь и при это каждый раз дергаешь из бызы всю таблицу?
а что у тебя рекурсивный вызов возвращает по-твоему?
 
Сверху