Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2017, 19:03   #1
Bulat Ibrahim
Форумчанин
 
Регистрация: 24.04.2015
Сообщений: 199
Вопрос Беспрерывный цикл

Здравствуйте. Учил уроки по PHP и базе данных MySQL по видеоурокам от Евгения Попова, и писал код по выводу информации из БД так:
Код:
$query = "SELECT xxx FROM table";
$res = mysql_query($query);
$data = array();
while($row = mysql_fetch_assoc($res)){
	$data[] = $row;
}
... ... ...
И, подумав, решил сократить код - и понятнее, и лишние переменные не создаются:
Код:
$data = array();
while($row = mysql_fetch_assoc(mysql_query("SELECT xxx FROM table"))){
	$data[] = $row;
}
... ... ...
Но после такого, как по мне, незначительного изменения кода, страницы перестали открываться, и после 30 секунд выводится такая запись: "Fatal error: Maximum execution time of 30 seconds exceeded in Z:\home\...\www\index.php on line 15"
Как я понял, цикл начал работать бесконечно, т.е. $row получает результат всегда (а ведь должен только столько, сколько строк в таблице БД).
Можно как-то исправить эту проблему, не удлиняя код? А то с таким большим количеством переменных я уже начал путаться...
Булат Азат улы
Bulat Ibrahim вне форума Ответить с цитированием
Старый 21.08.2017, 19:57   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Bulat Ibrahim Посмотреть сообщение
Можно как-то исправить эту проблему, не удлиняя код?
Можно.
Только сначала нужно стереть с харда и из собственной памяти все уроки Попова, а также забыть уже про deprecated-расширение mysql_ – и потратить вечер-два на освоение PDO или MySQLi, + какую нибудь обёртку типа safeMySQL.
Там подобные вещи решаются буквально парой строк.
Andkorol вне форума Ответить с цитированием
Старый 21.08.2017, 20:21   #3
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от Bulat Ibrahim Посмотреть сообщение
$row получает результат всегда
Просто Вы на каждом шаге теперь читаете из базы заново.

Цитата:
Сообщение от Bulat Ibrahim Посмотреть сообщение
Можно как-то исправить эту проблему, не удлиняя код?
Боюсь, что нет. Запрос к базе нужно сделать ДО цикла

Цитата:
Сообщение от Bulat Ibrahim Посмотреть сообщение
с таким большим количеством переменных я уже начал путаться...
Это, по меньшей мере, странно. На мой взгляд, код, разбитый на отдельные строчки, гораздо понятнее длинной цепочки вызовов. Особенно при осмысленных именах переменных.
Black Fregat вне форума Ответить с цитированием
Старый 21.08.2017, 21:26   #4
Bulat Ibrahim
Форумчанин
 
Регистрация: 24.04.2015
Сообщений: 199
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
... сначала нужно стереть с харда и из собственной памяти все уроки Попова ...
Спасибо за ссылки - потихоньку начал изучать.
Только вот не пойму - почему же некоторые так не любят Попова?! Сплетни (ложные) о нем рассказывают. Да, соглашусь, его курсы не так подробны, как хотелось бы. Но ведь и цена на их курсы ниже в двадцать-тридцать раз.
Помню, читал как-то блог какого-то программиста, который ругал Попова - он прямо сказал - не покупайте его курсы за 700-1200 рублей, лучше купите курс за 70 000 рублей. Даже смешно стало...
Да, я большую часть своих знаний получил на форумах, как сейчас - спасибо вам - людям, которые помогают новичкам карабкаться потихоньку наверх...
Но всё же, Попов и его "команда" дали мне "пинка" - основу, базу я получил у них, сам начал строить сайт на знаниях, которые я получил у них же, и попутно решая проблемы, возникающие в процессе работы, просил на форумах, в основном - в этом.
Так что, о Попове я ничего плохого сказать не могу. Уверен, что его курсы стоят тех денег, которые они требуют. И могли бы стоить намного дороже...
Булат Азат улы
Bulat Ibrahim вне форума Ответить с цитированием
Старый 21.08.2017, 21:27   #5
Bulat Ibrahim
Форумчанин
 
Регистрация: 24.04.2015
Сообщений: 199
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
... сначала нужно стереть с харда и из собственной памяти все уроки Попова ...
Спасибо за ссылки - потихоньку начал изучать.
Только вот не пойму - почему же некоторые так не любят Попова?! Сплетни (ложные) о нем рассказывают. Да, соглашусь, его курсы не так подробны, как хотелось бы. Но ведь и цена на их курсы ниже в двадцать-тридцать раз.
Помню, читал как-то блог какого-то программиста, который ругал Попова - он прямо сказал - не покупайте его курсы за 700-1200 рублей, лучше купите курс за 70 000 рублей. Даже смешно стало...
Да, я большую часть своих знаний получил на форумах, как сейчас - спасибо вам - людям, которые помогают новичкам карабкаться потихоньку наверх...
Но всё же, Попов и его "команда" дали мне "пинка" - основу, базу я получил у них, сам начал строить сайт на знаниях, которые я получил у них же, и попутно решая проблемы, возникающие в процессе работы, просил на форумах, в основном - в этом.
Так что, о Попове я ничего плохого сказать не могу. Уверен, что его курсы стоят тех денег, которые они требуют. И могли бы стоить намного дороже...
Цитата:
Сообщение от Andkorol Посмотреть сообщение
а также забыть уже про deprecated-расширение mysql_
А что это такое? Ничего о нем не слышал...
Булат Азат улы
Bulat Ibrahim вне форума Ответить с цитированием
Старый 21.08.2017, 21:32   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Bulat Ibrahim Посмотреть сообщение
А что это такое? Ничего о нем не слышал...
Это устаревшее расширение PHP для работы с MySQL (включает в себя все функции, которые начинаются с префикса mysql_).
Об этом написано в описании к каждой из таких функций в мануале:
Цитата:
Внимание
Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL.
Andkorol вне форума Ответить с цитированием
Старый 21.08.2017, 21:35   #7
Bulat Ibrahim
Форумчанин
 
Регистрация: 24.04.2015
Сообщений: 199
По умолчанию

Black Fregat, спасибо! Объяснили причину, почему так происходит.
А путаюсь я потому, что переменных у меня столько, что уже осмысленные переменные похожи друг другу...
Булат Азат улы
Bulat Ibrahim вне форума Ответить с цитированием
Старый 21.08.2017, 21:39   #8
Bulat Ibrahim
Форумчанин
 
Регистрация: 24.04.2015
Сообщений: 199
По умолчанию

Andkorol, понял, спасибо. Как знаю, курсы, по которым я учусь, написаны давненько - устарели, значит... Пока мне уж придется писать по старинке, пока не изучу новые (что мне по ссылке дали). А то изучить мне их будет не быстро...
Булат Азат улы
Bulat Ibrahim вне форума Ответить с цитированием
Старый 21.08.2017, 21:43   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Суть в том, что нет никакого практического смысла в изучении заведомо «мертвых» приёмов программирования.
Есть книги, изданные в текущем десятилетии – и толку от любой из них будет в разы больше, чем от подобной «поповщины».
Andkorol вне форума Ответить с цитированием
Старый 21.08.2017, 22:07   #10
Bulat Ibrahim
Форумчанин
 
Регистрация: 24.04.2015
Сообщений: 199
По умолчанию

Andkorol, ну зря вы так говорите. если судить по вашей логике, то школы и ВУЗы тоже не нужны (об обучении детей дома родителями ничего против не имею - это та же "школа"). Просто купить книги и читать...
Я с этим не согласен. Я, лично, лучше и точнее осваиваю информацию, если то же самое, что написано в книге, комментирует и показывает примеры какие-то «поповщины».
А вот на дорогих, больших и жирных Преподавателей, которые идут в ногу со временем, когда бы ты к ним не обратился - скажут только новое и актуальное, - но в то же время требующие за свои услуги заоблачную сумму (не спорю, возможно, их знания стоит таких денег) - у меня денег не хватает. Поэтому, я покупаю курсы у «поповщины», ценой в 20-30 раз дешевле, чем у тех Преподавателей, а их недочёты и старую информацию прощаю, так как за предлагаемую за их курсы цену можно и получить курсы ещё древнее. А остальное (новшества, недочёты и ошибки в курсах) узнаю и исправляю с помощью форумчан, которые бесплатно помогают таким, как я - Спасибо Вам Большое ещё раз!
Поэтому, думаю, «поповщины» очень полезны. Я нисколько не жалею, что купил у них курсы, которые "пнули" меня в океан программирования...
Булат Азат улы
Bulat Ibrahim вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Если поставить цикл For в цикл Repeat то как будут выполняться циклы? Владимир10101 Помощь студентам 3 14.11.2016 20:14
dateTimePicker а можно ли сделать беспрерывный ввод? Lord_Jesus_ Windows Forms 1 14.10.2016 14:25
написать процедуры для “Цикл For ... Next ” и «Цикл Do ... Loop» по ниже приведенному условию Кристина_Патачиц Microsoft Office Excel 3 17.04.2013 17:01
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34