Есть список артикулов, я получаю id этих товаров из БД, но есть артикулы которых нету в БД если $sku[0] в БД не находит то ошибка и остановка работы скрипта пишу код PHP: $query='SELECT `product_id` FROM `' . DB_PREFIX . 'product` WHERE `sku`="'.$sku[0].'"'; $result = mysqli_query($link, $query); while ($row = $result->fetch_array()) { $urlsirius= $row['product_id']; } как обойти это?
Просто проверять, что пришло в результате запроса. PHP: if(is_array($result)){} Возможно, вместо is_array нужно is_object, не уверен, что там изначально приходит. Но такой вопрос: какого чёрта вы в ОК напрямую вызываете mysqli_query? В ОК есть свои инструменты для роботы с БД, которые уже под капотом всё это проверяют и возвращают массив.
а нет случайно способа получить одно значение из БД без последующего разбора через цикл? т.е. скажем мне нужно получить наименование товара по product_id примерно так что бы было PHP: $query='SELECT `name` FROM `' . DB_PREFIX . 'product_description` WHERE `product_id`="'.$id.'"'; $name = что-то( mysqli_query($link, $query) ); и в $name сразу наименование товара ну или хотя бы в $name[0]
PHP: $result = $this->db->query($query);$name = $result->row['name']; Но то, что результат не пустой проверить всё равно надо.
наверное это немного не то, так как я пишу не в контроллере а отдельным скриптом, и мне нужно подключаться к БД т.е. PHP: include ('config.php');$link = mysqli_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);$query='...'; $result = mysqli_query($link, $query); ____________________________________________________________________________ кажется я догнал )) PHP: ...$result = mysqli_query($link, $query);if(is_array($result)){$name = $result->row['name'];}
Подключите туда опенкартовский класс для работы с БД. А вообще, зачем отдельным скриптом? Всё можно решить через модули и модуль может состоять просто из одного контроллера и без админки - к нему уже можно будет обращаться и при этом иметь доступ ко всем возможностям ОК.
отдельно, потому, что нужен крон, проще отделить скрипт от опенкарта, чем потом мучиться с подключением крона