Как исправить Fatal error: Uncaught Error: Call to undefined function mysql_fetch_assoc()?

Добрый день. Использую древнюю CMS - Art CMS 2.1.5. При переходе в модуль меню (в админке по адресу admin/?page=menu&token=37053babff3523cbb268a17f228d2111), вылетает ошибка:

Fatal error: Uncaught Error: Call to undefined function mysql_fetch_assoc() in public_html/admin/modules/menu/index.php:244 Stack trace: #0
public_html/admin/modules/menu/index.php(232): get_menu_tree() #1
public_html/admin.php(146): include('/home/climatven...') #2
public_html/admin.php(156): load_module('menu', false) #3 {main} thrown in
public_html/admin/modules/menu/index.php on line 244

В итоге на 244 строчке этого файла этот код:
while($row = mysql_fetch_assoc($res)) {
На 232 строчке:
$tree = get_menu_tree();
И вот общий участок кода:
Switch($action) {
  case ('up' || 'down'):
     if($obj_sql->query("SELECT position, parent FROM ".SQL_PREF."category_misc WHERE id=".SQL_INT, $_POST['catID'] ) && $cur_pos = $obj_sql->FetchAssoc() ) {
         if($action == 'up' ) {
            $obj_sql->query("SELECT c1.id, c1.position  FROM `category_misc` c1 WHERE c1.position < ".SQL_INT." AND parent=".SQL_INT." ORDER BY c1.position DESC LIMIT 1", $cur_pos['position'], $cur_pos['parent']);
         }
         else{
            $obj_sql->query("SELECT c1.id, c1.position  FROM `category_misc` c1 WHERE c1.position > ".SQL_INT." AND parent=".SQL_INT." ORDER BY c1.position ASC LIMIT 1", $cur_pos['position'], $cur_pos['parent']);
         }
         $upd = $obj_sql->FetchAssoc();
         $obj_sql->query("UPDATE ".SQL_PREF."category_misc SET position=".SQL_INT." WHERE id=".SQL_INT, $upd['position'] , $_POST['catID'] );
         $obj_sql->query("UPDATE ".SQL_PREF."category_misc SET position=".SQL_INT." WHERE id=".SQL_INT, $cur_pos['position'] , $upd['id']);
     } 
     header("Location: /admin/?page=menu&$_GET_TOKEN");          
  break;
  
  default: 
    $module_tpl->get_tpl($params['path'].'tpl.htm');
    $tree = get_menu_tree();
    $module_tpl->set_tpl('{options}' , $tree);
  break;

$module_tpl->parse_tpl();

function get_menu_tree($checked = false) {
    global $obj_sql;
    if($res = $obj_sql->query("SELECT * FROM ".SQL_PREF."category_misc AS c LEFT JOIN ".SQL_PREF."categories AS cname ON c.id=cname.id ".
                               "WHERE c.parent != 0  ORDER BY c.parent, c.position") ) 
    {
       while($row = mysql_fetch_assoc($res)) {
          $tmp[$row['id']] = $row;
          if($row['parent'] == -1 ) {
             $item[$row['id']]['item'] = "<option ".($row['status']!=1 ? "style='color:#969696'" : '')." value={$row['id']} ".( ($checked && $checked==$row['id'] ) ? 'selected'  : '' )." >".str_repeat('&nbsp;',8).$row['name']."&nbsp;({$row['url']})</option>\r\n";
          }
          else {
             $item[$row['parent']]['sub'][] = "<option ".($row['status']!=1 || $tmp[$row['parent']]['status']!=1  ? "style='color:#969696'" : '')." value={$row['id']} ".( ($checked && $checked==$row['id']) ? 'selected'  : '' )." >".str_repeat('&nbsp;',20).$row['name']."&nbsp;({$row['url']})</option>\r\n";  
          } 
       }
    }
    $tree = "";
    $tree = "<option value=-1 disabled>ROOT</option>\r\n";  
    foreach($item as $t) {
        $tree .= $t['item'];
       if( isset( $t['sub'] ) && !empty( $t['sub'] ) ) $tree .= implode('', $t['sub']);
    }
    return $tree;
}

В БД две записи есть (которые в запросе). Подскажите, куда копать можете подсказать, чтобы победить ошибку? Спасибо.
  • Вопрос задан
  • 317 просмотров
Решения вопроса 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
поменять на mysqli_fetch_assoc
а, не
поменять на какое-то $obj_sql->FetchAssoc()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Поддержка библиотеки mysql_ была удалена в PHP 7.0.
Отактывайтесь на более старую версию PHP.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы