<MyRusakov.ru />

Вёрстка сайта с нуля

Вёрстка сайта с нуля

Это уникальная информация по созданию страниц любой сложности. Вы узнаете всё, что нужно по HTML и CSS, а также увидите множество примеров по вёрстке страниц. А также почти к каждому уроку идут упражнения для закрепления материала, поэтому в отличном результате можете быть уверены! Пройдя данный курс, Вы сможете верстать страницы с любым по сложности дизайном. Помимо курса, Вы получите Бонус, который расскажет, как заработать на вёрстке сайтов.

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

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

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