SEO форум вебмастеров TalkWebber.ru

Чтобы пользоваться всеми его возможностями, необходимо зарегистрироваться. Без регистрации Вы сможете только читать определенные темы. Мы будем благодарны, если Вы примите участие в нашем проекте и будете развивать форум вместе с нами!

  • Хотите поместить баннер на наш сайт или закрепить свою тему с цветом? Зайдите в эту тему!

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

Morty

Гость
Пользователь
Сообщения
18
Репутация
3
#1
Для примера возьмём стандартную функцию

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
Как правильно обращаться к БД внутри функции?
Заранее благодарю за помощь :)
 

mxneo

Завсегдатай
Пользователь
Сообщения
904
Репутация
618
#2
Morty написал(а):
Для примера возьмём стандартную функцию
Код:
global $cat, $cat_parentid, $member_id, $user_group, $mod;
Код:
global $cat, $cat_parentid, $member_id, $user_group, $mod, $db;