Перейти к содержимому

CPA Mafia | Форум арбитражников

Фотография

Обращение к БД внутри функции

бд mysql функции

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#
Morty

Morty

    Пользователь

  • 18 сообщений
  • Отзывы: 0 0 0
  • 1 Благодарностей
Репутация: 3

Для примера возьмём стандартную функцию

function CategoryNewsSelection($categoryid = 0, $parentid = 0, $nocat = TRUE, $sublevelmarker = '', $returnstring = '') {
	global $cat, $cat_parentid, $member_id, $user_group, $mod;

	if ($mod == "addnews" OR $mod == "editnews")
		$allow_list = explode( ',', $user_group[$member_id['user_group']]['cat_allow_addnews'] );
	else
		$allow_list = explode( ',', $user_group[$member_id['user_group']]['allow_cats'] );

	$spec_list = explode( ',', $user_group[$member_id['user_group']]['cat_add'] );

	if( $parentid == 0 ) {
		if( $nocat ) $returnstring .= '<option value="0"></option>';
	} else {
		$sublevelmarker .= '&nbsp;&nbsp;&nbsp;&nbsp;';
	}

	if( isset( $cat_parentid ) ) {

		$root_category = @array_keys( $cat_parentid, $parentid );

		if( is_array( $root_category ) ) {

			foreach ( $root_category as $id ) {

				$category_name = $cat[$id];

				if( ( $allow_list[0] == "all" OR in_array( $id, $allow_list ) ) OR $mod == "usergroup" ) {

					if( $spec_list[0] == "all" or in_array( $id, $spec_list ) ) $color = "black";
					else $color = "red";

					$returnstring .= "<option style=\"color: {$color}\" value=\"" . $id . '" ';

					if( is_array( $categoryid ) ) {
						foreach ( $categoryid as $element ) {
							if( $element == $id ) $returnstring .= 'SELECTED';
						}
					} elseif( $categoryid == $id ) $returnstring .= 'SELECTED';

					$returnstring .= '>' . $sublevelmarker . $category_name . '</option>';
				}

				$returnstring = CategoryNewsSelection( $categoryid, $id, $nocat, $sublevelmarker, $returnstring );
			}
		}
	}

	return $returnstring;
}

Она работает как надо.

Однако, если внутри неё написать обращение к БД, например

$test = $db->super_query("тут запрос");

То, при вызове её (функции) выдаёт ошибку

 

 

  1. Fatal error: Call to a member function super_query() on a non-object

Как правильно обращаться к БД внутри функции?

Заранее благодарю за помощь :)


  • 0



Кто уже прочитал тему?


#
mxneo

mxneo

    Продвинутый

  • 915 сообщений
  • Отзывы: 5 0 0
  • 74 Благодарностей
Репутация: 606

Для примера возьмём стандартную функцию

global $cat, $cat_parentid, $member_id, $user_group, $mod;
global $cat, $cat_parentid, $member_id, $user_group, $mod, $db;

  • 0

Сказали спасибо 1 человек:

#
Morty

Morty

    Пользователь

    Автор темы
  • 18 сообщений
  • Отзывы: 0 0 0
  • 1 Благодарностей
Репутация: 3
global $cat, $cat_parentid, $member_id, $user_group, $mod, $db;

Благодарю


  • 0



Темы с аналогичным тегами бд, mysql, функции

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей