Запись данных: insert

Допустим, мы приняли данные из формы:

$name = @$_POST['name'];$password = @$_POST['password'];$email = @$_POST['email'];

Теперь эти данные запишем как новую строку БД:

$result = mysql_query("INSERT INTO `$table` (`name`, `password`, `email`) VALUES ('$name', '$password', '$email')");

В первых скобках указывается порядок полей, во вторых записываемые значения.

Чтение данных: SELECT

Самый популярный тип запроса, извлекающий нужные данные из БД. Допустим, нужно извлечь все данные о пользователе по известному имени, хранящемуся в переменной $login:

$query = mysql_query("SELECT * FROM `$table` WHERE `name` = '$login'");

Звёздочка обозначает «всё». Оператор WHERE — условие. Условия можно группировать, а выбирать только определённые типы полей:

$query = mysql_query("SELECT `name`, `email` FROM `$table` WHERE `name` = '$login' OR `name` = '$login2'");

Теперь, когда мы запросили данные, они хранятся в т.наз. ресурсе, содержащемся в переменной $query (её можно называть как угодно). Ресурс может содержать одну строку (если совпадение по условию одно), а может и несколько (допустим, если мы запросили все данные без условий:

$query = mysql_query("SELECT * FROM `$table`");

то запрос вернёт всю информацию обо всех пользователях).

Если мы точно знаем, что запрос вернул одну строку с результатом, то достаточно прочитать данные из ресурса и занести в массив:

$sets = mysql_fetch_array($query);

Теперь у нас есть массив, названия ключей которого совпадают с полями из таблицы, например, $sets['email'] хранит в себе электронный адрес того пользователя, который был «прочитан» из базы.

Функция mysql_fetch_array() выбирает из ресурса по одной строке за раз, поэтому для обращения ко всем строкам нужно считывать данные из ресурса циклом:

$emails = array();while($set = mysql_fetch_array($query)) { $emails[] = $set['email']; }

Так мы получаем массив всех электронных адресов всех пользователей, которые вернул запрос. Так же циклически можно эти данные сразу обрабатывать.

Чтобы упорядочить данные ещё на этапе запроса, можно сразу сортировать их:

$query = mysql_query("SELECT * FROM `$table` ORDER BY `id` DESC");

— в данном случае будет происходить обратная (DESC) сортировка по идентификатору (ORDER BY `id`) пользователей.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: