COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

seee

Соучастники
  • Публикации

    7
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем seee

  1. Вот вы так и не прочитали, а опять вопросы задаете. Функция SHOW TABLES - проверяет наличие таблицы в базе.

    Я считаю что ваш подход к разработке в корне неправильный, так как вместо того чтобы разобраться в сути проблемы, вы пытаетесь придумать индусское решение.

     

    Эм... Я не разработчик, я пользователь. Мне просто нужно решить задачу, как и большинству, кто придет по ссылке из гугла. Возможно, у автора модуля были какие-то свои причины использовать MySQL функции именно в этом месте, но я их не уловил. Я просто взял конструкцию

    $this->db->query

    из соседней функции.

     

    А теперь вернемся к коду.

    Вот оригинал:

    public function showTable($table) {    if (mysql_num_rows(mysql_query("SHOW TABLES LIKE '" . DB_PREFIX . $table . "'"))) {      return TRUE;    } else {      return FALSE;    }  }

    Вот моя адаптация:

    public function showTable($table) {	$query = $this->db->query("SHOW TABLES LIKE '" . DB_PREFIX . $table . "'");	if ($query->num_rows) {      return TRUE;    } else {      return FALSE;	  }	}

    Что видим? Зменил функции MySQL на реализованные в движке opencart.

     

    Функцию SHOW TABLES, о которой вы мне советовали почитать, не трогал! Она работает как и было задумано автором. Только вот используется уже существующее подключение к БД, а не mysql_query, которое, возможно, не было проинициализированно ранее, и вызывало ошибку.

     

    В итоге, результат, возвращаемый showTable($table) не изменится. Если подключение не состоялось, вернется false в любом случае. Функционал модуля полностью сохранен.

     

    Поправьте, если ошибся.

  2. Не пишите вредных советов!

    Лучше бы почитали мануал по mysql вот здесь. Узнали бы для себя что то новенькое, про пользователей mysql, привилегии и безопасность.

    Вот скажите честно, очень сложно загуглить мануал по команде ?

    Это наверное мне предназначено?

    Тогдла не понял совершенно. Код модуля не работал по какой-то причине. mysql функция не могла обратиться к базе. Она, похоже, вообще от не существующего пользователя это пыталась сделать.

    Я заменил неработающую mysql функцию на встроенную в opencart. Всё заработало.

    Насколько я понял, смысл public function showTable($table) - просто проверить есть ли подключение к БД.

    Не понимаю, почему сабжевая ошибка возникает только у небольшого числа пользователей, наверное дело в версии mysql или настройках базы, да и не важно это. Главное рещение получено.

    Так в чем совет вредный?

  3. Про ошибку

    Warning: mysql_query() [function.mysql-query]: Access denied for user '...'@'localhost' (using password: NO) in /admin/model/catalog/coolfilter.php on line 219 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in/admin/model/catalog/coolfilter.php on line 219 Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given /admin/model/catalog/coolfilter.php on line 219 Warning: Cannot modify header information - headers already sent by (output started at admin/index.php:85) in vqmod/vqcache/vq2-system_engine_controller.php on line 28 Warning: Cannot modify header information - headers already sent by (output started at/admin/index.php:85) in /vqmod/vqcache/vq2-system_engine_controller.php on line 29

    Ищем 219 строку в файле /admin/model/catalog/coolfilter.php

    Меняем всю функцию на:

    public function showTable($table) {	$query = $this->db->query("SHOW TABLES LIKE '" . DB_PREFIX . $table . "'");	if ($query->num_rows) {      return TRUE;    } else {      return FALSE;	  }	}
    После этого ошибки исчезают и модуль работает как надо.

    Возможно, дело в конфликте версий MySQL, MySQLi и PHP.

  4. Поставь последний VQmod и заново поставь фильтр.

    Я так разрулил, но но мой комманданте решил рулить на OpenCart

    В ocshop coolfilter работает не через vqmod. соответственно, переустанавливать vqmod бесполезно.

    Проблема актуальна.

  5. Актуально. Как заставить работать coolfilter?

    Вот что появляется на странице ели нажать "установить"

     

    Warning: mysql_query()

    ]: Access denied for user '********' (using password: NO) in /*****/admin/model/catalog/coolfilter.php on line 219Warning: mysql_query() mysql: A link to the server could not be established in /******/admin/model/catalog/coolfilter.php on line 219Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /*******/admin/model/catalog/coolfilter.php on line 219Warning: Cannot modify header information - headers already sent by (output started at /*****/admin/index.php:85) in /*******/vqmod/vqcache/vq2-system_engine_controller.php on line 28Warning: Cannot modify header information - headers already sent by (output started at /*****/admin/index.php:85) in /*****/vqmod/vqcache/vq2-system_engine_controller.php on line 29