ГРУППА КУРСА
|
Главная >
Учебник MySQL >
Получение результата выборки в PHPФункции для получения результатаКогда скрипт отправляет запрос на получение данных из БД, то MySQL возвращает результат выборки, который содержит выбранные записи. Из этих записей нужно получить данные, с которыми может работать PHP программа. Для этого используются такие функции: mysqli_fetch_row (результат) - возвращает одну запись выборки в виде индексированного массива. Значение каждого поля помещено в отдельный элемент массива. mysqli_fetch_assoc (результат) - возвращает одну запись выборки в виде ассоциативного массива. Значения полей также помещены в элементы массива. Названия элементов совпадают с названиями полей. Эти функции может заменить функция mysqli_fetch_array(), которая в зависимости от параметров может вернуть либо индексированный массив, либо ассоциативный массив, либо массив, содержащий и индексы и строковые ключи. mysqli_fetch_array (результат, тип массива) Параметры: результат - результат выборки тип массива - тип массива, который возвращает функция. Принимает значения: MYSQLI_NUM - индексированный, MYSQLI_ASSOC - ассоциативный, MYSQLI_BOTH - массив, в котором одновременно есть и индексы и строковые ключи. Такой массив получается в два раза больше, потому что каждое значение поля повторяется в двух элементах массива. По умолчанию установлено значение MYSQLI_BOTH. Создадим скрипт, который получает выборку из базы данных и выводит первую строку результата: +
Каждая из описанных функций возвращает только одну запись из выборки. На первом запуске она возвращает первую запись, на следующем вторую и так далее. Чтобы получить всю выборку, нужно запустить функцию в цикле. Чтобы узнать количество записей в выборке, используется функция mysqli_num_rows(). Напишем скрипт так, чтобы он выводил все записи выборки:
Перемещение указателяДля того, чтобы из результата бралась нужная запись, в нём есть указатель. Когда результат только получен, указатель находится на самой первой записи, её инднкс - 0. Функции, которые выводят записи, сдвигают указатель на следующую запись и таким образом указатель доходит до конца выборки. Есть возможность переместить указатель на какую-то строку результата для работы с ней. Для этого применяется функция mysqli_data_seek(). Она перемещает указатель на любую запись независимо от того, где он находится в данный момент. mysqli_data_seek (результат, позиця) Параметры: результат - результат выборки позиция - позиция в результате, на которую нужно переместить указатель В нашем примере мы вывели весь результат, значит указатель находится в конце выборки. Вернём его к началу:
Получение всего результатаФункция mysqli_fetch_all() возвращает двухмерный массив, содержащий все записи, начиная от указателя и до конца результата. Если с результатом ещё не производилось никаких действий, получается вся выборка. Эта функция работает начиная с версии PHP 5.3. mysqli_fetch_all (результат, тип массива) Параметры: результат - результат выборки тип массива - тип массива, который возвращает функция. Принимает значения: MYSQLI_NUM, MYSQLI_ASSOC, MYSQLI_BOTH. По умолчанию установлено значение MYSQLI_NUM. При работе с результатом, содержащим большое количество строк, функция создаёт массив использующий много памяти и это нужно учитывать при написании скриптов. Если указатель в результате уже был перемещён, то его нужно установить на нужной записи перед запуском функции mysqli_fetch_all(). В нашем примере это уже сделано. Выведем результат при помощи этой функии:
|