Непонятнки при работе функции в одном и том же классе

Статус
В этой теме нельзя размещать новые ответы.

funtic

Guest
Непонятнки при работе функции в одном и том же классе

Ничего не могу понять, в одном классе находятся 2 функции которые абсолютно идентично пользуюся родительским классом, при этом первая функция отрабатывает как надо, а вторая выкидывает ошибки.
Код такой:
РОДИТЕЛЬСКИЙ класс mysql_class, и функция:
PHP:
 function sql_execute(){
	//проверка существующего подключения
	if(!$this->connection_id){
		$err=$this->sql_connect();
		if(!$err) return($err);
	}
	$this->sql_res=mysql_query($this->sql_query, $this->connection_id);
	if(!$this->sql_res){
		$this->sql_errno=mysql_errno($this->connection_id);
		return(103); //невозможно выполнить запрос к БД
	}
	
	//если запрос содержит select то определяем количество извлеченных строк.
	if(eregi("select", $this->sql_query)){
		$this->sql_num_rows=mysql_num_rows($this->sql_res);
	}

	//обработка ошибок
	if($this->sql_errno){
		$this->sql_err=mysql_error($this->connection_id);
		return(101);
	}
	
	return(0);

}
И две функции, первая из которых работает, а вторая - нет:
PHP:
function out_menu_main(){
	//запрос на выборку всех рубрик
	$this->sql_query="SELECT cat_id, cat_name FROM tbl_cat WHERE cat_enable='Y' ORDER BY cat_position";
	$err=$this->sql_execute();
	if($err) return($err);

	$out_menu_main="<table width=\"150\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
	if(!mysql_num_rows($this->sql_res)) return(15254);
	while(list($cat_id, $cat_name)=mysql_fetch_row($this->sql_res)){
		$this->arr_menu[$cat_id]=$cat_name;
		$out_menu_main.="<tr>";
		$out_menu_main.="<td width=\"15\"></td>";
		$out_menu_main.="<td width=\"135\"><a href=\"?id=".$cat_id."\" class=\"\">".$this->arr_menu[$cat_id]."</a></td>";
		$out_menu_main.="</tr>";
	}
	$out_menu_main.="</table>";

return($out_menu_main);
}

function get_page_info($id){
	
	$id=(int)$id;
	
	//запрос на выборку всей информации о текущей странице
	$this->sql_query="SELECT block_name, block_text, block_title, block_keywords, block_description, parent_id, block_tpl ";
	$this->sql_query.="FROM tbl_blocks ";
	$this->sql_query.="WHERE block_id='".$id."' AND block_show='Y'";

	$err=$this->sql_execute();
	if($err) return($err);
	
	//если ничего не выбрано
	 **** if(!mysql_num_rows($this->sql_res)){  ****
		$this->page_info['block_title']=$this->block_title_def;
		$this->page_info['block_keywords']=$this->block_keywords_def;
		$this->page_info['block_description']=$this->block_description_def;
		$this->page_info['block_text']=$this->block_text_def; 
		$this->page_info['block_tpl']=1;
	}
	else { 
	list($this->page_info['block_name'], $this->page_info['block_text'], $this->page_info['block_title'], $this->page_info['block_keywords'], $this->page_info['block_description'], $this->page_info['parent_id'], $this->page_info['block_tpl'])=mysql_fetch_row($this->sql_res);
	}
	$this->page_text=$this->out_block(); //получаем код выводимой страницы 
	
return(0);
}
Код взят со страниц, последовательность соблюдена. Вопрос такой: функция out_menu_main() выводит результат без проблем, а вот вторая функция выдает ошибку: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\www-made\req\out_class.php on line 116 (строка помеченная *****). В чем косяк не пойму, почему то не передается идентификатор соединения и результат выполнения query.:confused: :confused: :confused: :confused: помогите разобраться
 

[Gisma]

Новичок
обычно эта ошибка обозначает что у тебя неправильно выполнился запрос
mysql_error тебе поможет
 

funtic

Guest
Если я мало вопросов задаю это не значит что я новичок, как ты объяснишь с высоты своих знаний почему же 2, абсолютно идентично использующие родительскую функцию, метода работают по разному? И в одной sql_res возвращается а в другой нет? ну что? есть версии?

-~{}~ 15.11.05 12:42:

Автор оригинала: [Gisma]
обычно эта ошибка обозначает что у тебя неправильно выполнился запрос
mysql_error тебе поможет
ни mysql_errno ни mysql_error ничего не показывают, и ошибок нету, запрос рабочий однозначно, поскольку проверен на БД в окне sql запроса
 

SiMM

Новичок
> Если я мало вопросов задаю это не значит что я новичок
Дело не в том, сколько ты вопросов задал, дело в том, что этот почерк я узнаю. И ничего хорошего в этом не вижу.

> как ты объяснишь ... почему же 2, абсолютно идентично использующие родительскую функцию, метода работают по разному?
Я уже объяснил.
> взялся за классы ещё не изучив азов и совершенно не понимая, зачем он их вообще использует.
 

Фанат

oncle terrible
Команда форума
есть
прочти вторую ссылку, которую тебе дал SiMM
там всё написано.
специально для таких крикунов, как ты.
 

Фанат

oncle terrible
Команда форума
Тема закрыта.

Формулируйте вопрос так, чтобы его могли понять не только Вы.
Не пишите больше 10-15 строк кода.
Никто не будет вникать в Ваш код длиной 100 строк.
Правила форума: http://phpclub.ru/talk/announcement.php?s=&forumid=12
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху