2015-10-17 5 views
0

Я читал this documentation сегодня и смутился, увидев выход.Понимание кода документации PHP

Строки кода:

/* numeric array */ 
$row = $result->fetch_array(MYSQLI_NUM); 
printf ("%s (%s)\n", $row[0], $row[1]); 

/* associative array */ 
$row = $result->fetch_array(MYSQLI_ASSOC); 
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]); 

/* associative and numeric array */ 
$row = $result->fetch_array(MYSQLI_BOTH); 
printf ("%s (%s)\n", $row[0], $row["CountryCode"]); 

Производит результат:

Kabul (AFG) 
Qandahar (AFG) 
Herat (AFG) 

Если есть комбинация петли и data_seek(), то я могу понять, почему выход каждый раз разный. Должен ли вывод из кода выше?

Kabul (AFG) 
Kabul (AFG) 
Kabul (AFG) 

Я что-то не хватает?

+1

I подумайте, что курсор массива будет двигаться вперед каждый раз, когда вы получите один и тот же набор результатов. Сама причина, по которой вы зацикливаете все строки в наборе результатов. Если вы не используете что-то вроде 'fetchAll' для PDO, не уверены в mysqli. – frz3993

+0

курсор набора записей продвигается с каждым вызовом 'fetch_array' с различными параметрами, поэтому так оно и должно быть – RamRaider

ответ

0

Вам просто нужно было исследовать немного дальше. На этой странице говорится, что эта функция «является расширенной версией mysqli_fetch_row()», и, следуя ссылке, вы узнаете, что «каждый последующий вызов этой функции возвращает следующую строку в результирующем наборе»

Смежные вопросы