Получение данных из БД. SELECT

Рецепт №118. Из книги «128 рецептов php»
Перейти к оглавлению

Для получения данных из таблицы, можно воспользоваться ранее описанной функцией mysql_query, которая отправляет SQL-запросы к базе данных.
Чтобы получить данные, запрос должен выглядеть следующим образом:

SELECT * FROM tbl_users

, где tbl_users – название таблицы, а * — поля таблицы, значения которых необходимо получить. *(звездочка), обозначает, что будут получены все поля, если необходимо получить только некоторые, то их необходимо указать через запятую.
После выполнения запроса, необходимо обработать полученные данные, это можно реализовать с помощью нескольких php функций:
mysql_fetch_array – обрабатывает запрос и возвращает ассоциативный или числовой массив с данными. Для определения типа массива необходимо передавать флаг MYSQL_ASSOC (ассоциативный массив) или MYSQL_NUM(числовой массив), также есть третий флаг, который установлен по умолчанию MYSQL_BOTH(данные будут иметь как ассоциативные, так и числовые ключи).
mysql_fetch_row – обрабатывает запрос и возвращает массив данных с числовыми индексами.
mysql_fetch_assoc – обрабатывает запрос и возвращает массив данных с ассоциативными индексами(именами столбцов).
mysql_fetch_object – обрабатывает запрос и возвращает объект содержащий данные.

Все эти функции работают одинаково, отличие только в виде данных, которые эти функции возвращают. Все, кроме первой, функции принимают по одному параметру – обрабатываемый результат запроса.

Пример:

// предварительно, необходимо реализовать 
// подключение к базе данных

// запрос на получение данных
// при ошибке остановим скрипт и выведем ошибку
$query = mysql_query("
	SELECT * FROM tbl_users
") or die(mysql_error());

// массив для данных
$users = array();
// перебираем все полученные данные по одной строке
// и записываем их в массив
while($row = mysql_fetch_array($query, MYSQL_ASSOC)){
	$users[] = $row;
}
// вывод результата
print_r($users);
Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*