<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

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

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

Подписавшись по 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, автоматически происходит выход из цикла.
Профиль Ответить