<MyRusakov.ru />

Создание Интернет-магазина на OpenCart 2.0

Создание Интернет-магазина на OpenCart 2.0

Видеокурс "Создание Интернет-магазина на OpenCart 2.0" обучит Вас созданию любых Интернет-магазинов на OpenCart 2. В первом разделе курса разбираются абсолютно все возможности данного движка с примерами.

Во втором разделе создаётся полноценный Интернет-магазин, где Вы уже всё увидите своими глазами.

И, наконец, в третьем разделе курса созданный Интернет-магазин будет размещён в Интернете.

К курсу так же идут бесплатные и очень ценные Бонусы сопоставимые с самим курсом: "Как сэкономить на Яндекс.Директ до 50%", "Дропшиппинг" и "Как раскрутить Интернет-магазин".

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

При выборке данных из базы в цикле происходит зацикливание
01.04.2012 23:16:44 При выборке данных из базы в цикле происходит зацикливание Сообщение #1
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, есть вот такой код для работой с БД (Класс Mysql)
class Mysql extends Mysqli{
public function connect() {
$this->con = new Mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
return $this->con;
}
public function getCountries() {
$query = Mysql::connect()->query("SELECT id_country, country_name_ru FROM country_ ORDER BY country_name_ru ASC"->fetch_array();
return $query;
}}

И соответственно класс конструктора главной страницы
function countriesConstruct() {
while ($row = Mysql::getCountries()) {
//$country_id = $row['id_country'];
//$country_name = $row['country_name_ru'];
$countries = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/temp/option.tpl";
$countries = str_replace("{value}", $row['id_country'], $countries);
$countries = str_replace("{name}", $row['country_name_ru'], $countries);
}
return $countries;
}
function registrationConstruct() {
PageDetails::headerConstruct($this->get);
PageDetails::fastMenuConstruct();
$reg = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/temp/reg.tpl');
$reg = str_replace("{counries}", $this->countriesConstruct(), $reg);
echo $reg;
PageDetails::footerConstruct();
}

Так вот изза чего может быть зацикливание? Проблема именно в том, что идёт зацикливание, такое уже наблюдал ещё в процедурном коде, что если while получает данные, которые прошли через fetch_array(), а не были переведены в массив именно в условии цикла, то происходило зацикливание. Заранее спасибо
Профиль Ответить
01.04.2012 23:19:14 При выборке данных из базы в цикле происходит зацикливание Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Конечно, зацикливание. Зачем постоянно выполнять один и тот же запрос? Вытащили все необходимые данные из базы, а затем уже fetch_array() в while().
Профиль Ответить
01.04.2012 23:22:12 При выборке данных из базы в цикле происходит зацикливание Сообщение #3
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Лпс, точно)) А это не будет дурной чертой при работе в ооп? Ведь получается цикл выполняет лишнюю работу?
Профиль Ответить
01.04.2012 23:29:10 При выборке данных из базы в цикле происходит зацикливание Сообщение #4
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

И как вообще в while это сделать? Уже практически всё попробовал
Профиль Ответить
02.04.2012 00:04:11 При выборке данных из базы в цикле происходит зацикливание Сообщение #5
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Получаете result_set, затем в while перебираете все элементы (с помощью fetch_array()). Когда fetch_array() возвращает false, автоматически происходит выход из цикла.
Профиль Ответить