1.Зачем вообще выполняется тело цикла? Я так понял функция mysql_fecth_array возвращает массив с авто.индексами и индексами которые были указаны в БД. И ещё как я понял она возвращет true, тем самым запускает цикл while?
Дальше не понял, обьясните на доступном языке пожалуйста.
while($row = mysql_fetch_array($res)){
$mname[$row['id']] = $row['menu_name'];
}
БД Выглядит таким образом:
id1| menu_name |
--------------------
1 | main_page |
2 | second page |
Запрос к бд - select id,menu_name from pages
Спустя 6 минут, 40 секунд (4.01.2011 - 02:28) inpost написал(а):
fallow
всмысле? Цикл для перебора, формируется массив $mname.
$mname[1] = main_page
$mname[2] = second_page.
всмысле? Цикл для перебора, формируется массив $mname.
$mname[1] = main_page
$mname[2] = second_page.
Спустя 16 минут, 3 секунды (4.01.2011 - 02:44) fallow написал(а):
inpost Не могу понять условие, он же в условий while'ла вернёт массив...
Совсем запутался
Совсем запутался

Спустя 8 минут, 43 секунды (4.01.2011 - 02:53) Invis1ble написал(а):
fallow
при каждой итерации цикла while() внутренний указатель во временной таблице (на которую указывает идентификатор $res) смещается на одну позицию вперед. Когда указатель достигает конца временной таблицы, функция mysql_fetch_array() возвращает false и цикл завершается.
Кстати, вместо mysql_fetch_array() лучше юзать mysql_fetch_assoc()
при каждой итерации цикла while() внутренний указатель во временной таблице (на которую указывает идентификатор $res) смещается на одну позицию вперед. Когда указатель достигает конца временной таблицы, функция mysql_fetch_array() возвращает false и цикл завершается.
Кстати, вместо mysql_fetch_array() лучше юзать mysql_fetch_assoc()
Спустя 7 часов, 22 минуты, 10 секунд (4.01.2011 - 10:15) GreatMax написал(а):
Цитата (fallow @ 3.01.2011 - 23:21) |
Смотрю тут курсы и натыкаюсь на такую вещь: 1.Зачем вообще выполняется тело цикла? Я так понял функция mysql_fecth_array возвращает массив с авто.индексами и индексами которые были указаны в БД. И ещё как я понял она возвращет true, тем самым запускает цикл while? Дальше не понял, обьясните на доступном языке пожалуйста. <pre class="sh_sourceCode" rel="php"><span class="sh_control">while</span><span class="sh_symbol">(</span><span class="sh_variable">$row</span> <span class="sh_symbol">=</span> <span class="sh_function">mysql_fetch_array</span><span class="sh_symbol">(</span><span class="sh_variable">$res</span><span class="sh_symbol">))</span><span class="sh_cbracket">{</span> <span class="sh_variable">$mname</span><span class="sh_symbol">[</span><span class="sh_variable">$row</span><span class="sh_symbol">[</span><span class="sh_string">'id'</span><span class="sh_symbol">]] =</span> <span class="sh_variable">$row</span><span class="sh_symbol">[</span><span class="sh_string">'menu_name'</span><span class="sh_symbol">];</span> <span class="sh_cbracket">}</span></pre> БД Выглядит таким образом: id1| menu_name | -------------------- 1 | main_page | 2 | second page | Запрос к бд - select id,menu_name from pages |
Ну а это то что? ЗАчем???
$mname[$row['id']] = $row['menu_name'];
Типа создал массив и перекинул его в другой массив. Тем более, что сразу ошибка!
вот что должно быть:
while($row = mysql_fetch_assoc($res))
$mname[$row['id1']] = $row['menu_name'];
Спустя 5 часов, 13 минут, 3 секунды (4.01.2011 - 15:28) inpost написал(а):
GreatMax
А почему так? Вот чисто из занудства писать assoc, где бывает удобнее array? =) Не считаю это ошибкой такой, что называть её так. Если следовать примеру Твина с соседней теме, то порой жертвовать производительностью ради удобства - это хорошо.
А вообще обычная MVC модель, первое - это обращения к БД и формирование вывода в контроллере. А потом этот массив просто в вьюшке вывести, ничего более.
А почему так? Вот чисто из занудства писать assoc, где бывает удобнее array? =) Не считаю это ошибкой такой, что называть её так. Если следовать примеру Твина с соседней теме, то порой жертвовать производительностью ради удобства - это хорошо.
А вообще обычная MVC модель, первое - это обращения к БД и формирование вывода в контроллере. А потом этот массив просто в вьюшке вывести, ничего более.