Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив

# mysqli_result::fetch_assoc

# mysqli_fetch_assoc

(PHP 5, PHP 7, PHP 8)

mysqli_result::fetch_assoc -- mysqli_fetch_assoc — Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив

### Описание

Объектно-ориентированный стиль

public function mysqli_result::fetch_assoc(): array|null|false

Процедурный стиль

function mysqli_fetch_assoc(mysqli_result `$result`): array|null|false

Выбирает одну строку данных из набора результатов и возвращает её в виде ассоциативного массива. Каждый последующий вызов этой функции будет возвращать следующую строку в наборе результатов или `null`, если строк больше нет.

Если у двух и более столбцов в наборе результатов одинаковое имя, последний столбец будет иметь приоритет и перезапишет любые предыдущие данные. Для доступа к нескольким столбцам с одинаковым именем можно использовать функцию mysqli_fetch_row() для выборки массива с числовым индексом или в списке выбора SQL-запроса можно использовать псевдонимы, чтобы задать столбцам разные имена.

> Замечание: Имена полей, возвращаемые этой функцией являются зависимыми от регистра.

> Замечание: Эта функция устанавливает NULL-поля в значение `null` PHP.

### Список параметров

`result`
  Только для процедурного стиля: объект mysqli_result, который вернула функция mysqli_query(), mysqli_store_result(), mysqli_use_result() или mysqli_stmt_get_result().

### Возвращаемые значения

Возвращает ассоциативный массив, представляющий выбранную строку, где каждое свойство представляет имя столбца набора результатов, `null`, если в наборе результатов больше нет строк или `false`, если возникла ошибка.

### Примеры

Пример #1 Пример использования mysqli_result::fetch_assoc()

Объектно-ориентированный стиль

    <?php

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");

    $query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

    $result = $mysqli->query($query);

    /* извлечение ассоциативного массива */
    while ($row = $result->fetch_assoc()) {
        printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

Процедурный стиль

    <?php

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

    $query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

    $result = mysqli_query($mysqli, $query);

    /* извлечение ассоциативного массива */
    while ($row = mysqli_fetch_assoc($result)) {
        printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

Вывод приведённых примеров будет похож на:

    Pueblo (USA)
    Arvada (USA)
    Cape Coral (USA)
    Green Bay (USA)
    Santa Clara (USA)

Пример #2 Сравнение использования mysqli_result iterator и mysqli_result::fetch_assoc()

mysqli_result можно повторить с помощью `foreach`. Результирующий набор всегда будет повторяться с первой строки, независимо от текущей позиции.

    <?php

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");

    $query = 'SELECT Name, CountryCode FROM City ORDER BY ID DESC';

    // Используем итераторы
    $result = $mysqli->query($query);
    foreach ($result as $row) {
        printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    echo "\n==================\n";

    // Не используем итераторы
    $result = $mysqli->query($query);
    while ($row = $result->fetch_assoc()) {
        printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

Вывод приведённого примера будет похож на:

    Pueblo (USA)
    Arvada (USA)
    Cape Coral (USA)
    Green Bay (USA)
    Santa Clara (USA)

    ==================
    Pueblo (USA)
    Arvada (USA)
    Cape Coral (USA)
    Green Bay (USA)
    Santa Clara (USA)

### Смотрите также

- mysqli_fetch_array() - Выбирает следующую строку из набора результатов и помещает её в ассоциативный массив, обычный массив или в оба
- mysqli_fetch_column() - Получает один столбец из следующей строки набора результатов
- mysqli_fetch_row() - Выбирает следующую строку из набора результатов и помещает её в обычный массив
- mysqli_fetch_object() - Выбирает следующую строку из набора результатов в виде объекта
- mysqli_query() - Выполняет запрос к базе данных
- mysqli_data_seek() - Перемещает указатель результата на выбранную строку

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open