SQL — запросы и их обработка при помощи PHP
0

SQL - запросы и их обработка при помощи PHP

В данной статье хотелось бы рассказать о том какие SQL - запросы бывают и как их обрабатывать при помощи языка программирования PHP. Ничего сложного и сверхъестественного здесь не будет. Статья скорее адресована на новичков. В языке PHP для обработки запросов имеется целый набор функций с префиксов "mysql", но в данной статье мы рассмотрим самые основные и самые необходимы, а их не так уж и много.
mysql_query() - Функция посылает запрос к базе данных и в случае успешного выполнения возвращает какой-то идентификатор.

Для того чтобы подключиться к базе данных вы можете использовать код ниже:

1
2
3
4
5
6
7
$host='localhost'; // имя хоста (уточняется у провайдера), на OpenServer обычно используется localhost
$database='db_name'; // имя базы данных, которую вы должны создать
$user='user_name'; // заданное вами имя пользователя, либо имя, которое дал вам провайдер
$passwod='your_pass'; // заданный вами пароль
 
$db = mysql_connect($host, $user, $password) or die("Не удалось подключиться к MySQL.");
mysql_select_db($database) or die("Не удалось подключиться к базе данных.");

Рассмотрим этот код более детально.
mysql_connect - Функция выполняет подключение к MySQL серверу.
mysql_select_db() - Функция выполняет подключение к бизе данных.
die() - Функция срабатывает только в случае ошибки и выводит нам в браузере текст, который мы же и указали. Используется она больше для удобства, чем как обязательность...
mysql_close() - Используется эта функция для завершения работы с базой данных. Например: mysql_close($db);.

На этом небольшое введение заканчивается и мы переходим к самим SQL - запросам. Как вы видели код выше, мы используем базу данных MySQL, ее вам и нужно создать, а также создать таблицу и пользователя, указав ему пароль. В данной статье мы будем рассматривать все на примере нашей таблицы "table_name", создать ее вы можете в phpmyadmin, выполнив следующий SQL - запрос:

1
2
3
4
5
6
CREATE TABLE `table_name` (
`id` INT NOT NULL ,    // уникальный идентификатор будущих записей таблицы
`name` VARCHAR( 50 ) NOT NULL , // текстовое поле VARCHAR, максимальной длиной 50 символов
`surname` VARCHAR( 50 ) NOT NULL , // такое же текстовое поле, максимальной длиной 50 символов
PRIMARY KEY ( `id` ) // первичный ключ - идентификатор id
);

Таблица создана, теперь мы можем смело перейти к выполнению различных запросов. Запрос конечно же оформим с помощью PHP, для этого создадим файл name.php со следующим содержимым:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$host='localhost'; // имя хоста (уточняется у провайдера)
$database='db_name'; // имя базы данных, которую вы должны создать
$user='user_name'; // заданное вами имя пользователя, либо определенное провайдером
$passwod='your_pass'; // заданный вами пароль
 
$db = mysql_connect($host, $user, $passwod) or die("Не удалось подключиться к MySQL.");
mysql_select_db($database) or die("Не удалось подключиться к базе данных.");
$query = "SELECT * FROM `table_name`";
$resource = mysql_query($query);
while($row = mysql_fetch_array($resource ))
{
echo "Порядковый номер: ".$row['id']."<br>\n";
echo "Имя: ".$row['name']."<br>\n";
echo "Фамилия: ".$row['surname']."<br><hr>\n";
}
?>

И также как и ранее разберем этот код. А начнем мы пожалуй с первого запросы к нашей таблице.

1
$query = "SELECT * FROM `table_name`";

Запрос выполняет получение всех данных из таблицы table_name. То есть знак * обозначает "получить все данные, что есть в таблице". Запрос готов, теперь его выполнение. Для этого мы используем следующий код:

1
$resource = mysql_query($query);

В случае успешного выполнения запросы, функция "mysql_query()" вернет нам идентификатор "$resource". На нашем пример мы передаем его другой функции "mysql_fetch_array()", которая формирует массив и выдает его данные, по выборке из таблицы базы данных. На примере нашей таблицы массив будет состоять из ряда элементов, равных количеству строк (записей) в таблице. Которые в свою очередь будут содержать следующие значения: id, name, surname, в каждой строке таблицы. Используем мы вот этот теперь код:

1
2
3
4
5
6
while($row = mysql_fetch_array($resource ))
{
echo "Порядковый номер: ".$row['id']."<br>\n";
echo "Имя: ".$row['name']."<br>\n";
echo "Фамилия: ".$row['surname']."<br><hr>\n";
}

То есть, пока данная нами переменная $row не получает результаты работы функции "mysql_fetch_row" равные нулю, следует выдавать браузеру значения полей: $row['id'], $row['name'], $row['surname'] при помощи переменной "echo". На этом описание и разбор данного кода закончен.

Разберем еще один пример запроса:

1
$query = "SELECT name FROM `table_name`";

Тут мы уже не выбираем из таблицы всё, а выбираем только значения полей "name". Мы также должны переписать немного и дальнейший код вывода. Он будет уже таким:

1
2
3
4
5
$resource = mysql_query($query);
while($row = mysql_fetch_array($resource ))
{
echo "Имя:".$row['name']."<br>\n";
}

Достаточно просто не правда ли? Ну что ж, идем дальше. Если вы хотите получить скажем все номера строк, где значение поля surname будет равно Иванов, то запрос будет уже иметь следующий вид:

1
$query = "SELECT id FROM `table_name` where surname='Иванов'";

К примеру на нужно вывести фамилию из строки под номером 10, то запрос перепишем следующим образом:

1
$query = "SELECT surname FROM `table_name` where id=10";

После выполнения подобного запроса результатом будет только одна строка, и соответственно нет смысла создавать цикл while и загонять все в массив. Будем использовать более простой код:

1
2
3
$resource =  mysql_query($query);
$row = mysql_fetch_row($resource);
echo "Фамилия десятого человека в списке:  ".$row[0]."\n";

Если вы внимательно присмотритесь, то увидите новую функцию "mysql_fetch_row()", а ранее мы использовали "mysql_fetch_array()". Данная функция позволяет получить значения полей (или одного поля) какой-то конкретной строки. Так как мы получали только фамилию, а это один элемент, то обратиться к нему мы можем с помощью $row вот так $row[0];. На этом рассмотрение подобных запросов закончим пока что и двинемся быстренько дальше.

Чтобы добавить в таблицу "table_name" поле "middlename" (отчество) после surname:

1
$query = "ALTER TABLE `table_name` ADD `middlename` VARCHAR( 50 ) NOT NULL AFTER `surname`";

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

1
$query = "SELECT * FROM `surname` where surname like '%ов%'";

Использование знака "%" в начале или конце обозначает, что "ов" может быть в любой части слова. Рассмотрим теперь пример где мы выбираем данные по букве "В" в начале имени Обратите внимание на расположение знака "%".

1
$query = "SELECT * FROM `table_name` where namelike 'В%'";

Тут все понятно? Хорошо идем дальше... Проведем подсчет количества строк в таблице, в которых имя начинается на букву "В":

1
$query = "SELECT COUNT(*) FROM `table_name` where name like 'В%'";

Следующий запрос на получение максимального значения поля id:

1
$query = "SELECT MAX(id) FROM `table_name`";

Теперь давайте удалим все записи из таблицы, что имеют фамилию Петров:

1
$query = "DELETE FROM `table_name` where surname='Петров'";

А следом раз мы подошли уже к удалению, удалим столбец (поле) surname из нашей таблицы:

1
$query = "ALTER TABLE `table_name` DROP `surname`";

И теперь полностью удалим еще нашу таблицу "table_name":

1
$query = "DROP TABLE `table_name`";

На этом пожалуй мы и закончим. Подводя итоги статьи, мы рассмотрели построение основных запросов, вывод данных из базы MySQL, подключение к базе. Хотелось бы еще уточнить для запросов на получение (SELECT) мы можем использовать функцию - mysql_query(). Вот собственно и все, что я хотел вам рассказать. При возникновении вопросов или в случае появления дополнений к статье пишите в комментарии.

Запись опубликована В категории: Изучение PHP

Shnapik

Вебмастер с опытом ищет приют! Возьмите меня, а то меня рвут!

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

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