Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: while
 
 автор: tAleks   (11.12.2006 в 12:19)   письмо автору
 
 

Сделал запрос из базы.
И циклом while загоняю данные в массив. ТАк:

// Извлекаем все группы
$sql = "SELECT name, code_group, code_parent, showhide FROM cms_groups";
$query = mysql_query($sql);
// если запрос не сделан, или сток извлечено < 1 возвращаем FALSE
if(!$query || mysql_num_rows($query) < 1) return FALSE;
// Запихиваем все в массив
while ($g[@++$i] = mysql_fetch_assoc($query));


Почему при такой записи:

while ($g[@++$i] = mysql_fetch_assoc($query));


Последний элемент массива $g пустой?

А при такой нет:

while ($k= mysql_fetch_assoc($query))
{
  $g[@++$i] = $k;
}

   
 
 автор: Саня   (11.12.2006 в 12:24)   письмо автору
 
   для: tAleks   (11.12.2006 в 12:19)
 

Потому что сначала вычисляется выражение в скобках, а потом идёт проверка условия цикла. Когда указатель в $query дошёл до конца, то сначала в $g[@++$i] поместилось false, а уж потом цикл закончился.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования