Работа с MySQL
Так как большинство сайтов призваны служить для предоставления доступа к огромным хранилищам информации важно знать как подключится к базе данных и взять из нее нужную информацию средствами PHP.
Подключение к базе данных
Чтобы подключится к базе данных, для начала нужно подключится к серверу MySQL через функцию mysql_connect. Ее синтаксис таков:
1 |
mysql_connect("server_name", "user_name", "password"); |
Где server_name — имя сервера MySQL к которому подключаемся, user_name — имя пользователя и соответственно password — это пароль с помощью которого подключаемся к БД.
Для того чтобы выбрать конкретную базу используют функцию mysql_select_db:
1 |
mysql_select_db("db_name"); |
Где, db_name — имя БД к которой подключаемся.
Если вы используете кириллицу в своей БД, то необходимо указать кодировку с помощью специальной функции:
1 |
mysql_set_charset("utf8"); |
После выполнения всех операций с БД, необходимо разорвать соединение с ней. За разрыв соединения с базой отвечает функция mysql_close(). Для того чтобы разорвать соединение с БД необходимо просто вызвать данную функцию в нужном месте.
Выборка информации из базы
Для того чтобы осуществить выборку из БД нужно отправить запрос. Для этого существует функция mysql_query(). С помощью данной функции можно, например, выбрать данные из определенной таблицы:
1 |
mysql_query(" SELECT * FROM article"); |
Рассмотрим синтаксис данной функции подробнее. SQL команда SELECT(выбрать) применяется для извлечения строк, знак звездочка(*) сообщает что выбрать нужно все записи(если требуется выбрать не все записи, то вместо звездочки следует указать нужные поля через запятую), оператор FROM сообщает из какой таблицы делается выборка, article в данном примере это имя таблицы из которой выборка делается. Обычно результат выборки сохраняют в переменную и в дальнейшем используют ее:
1 |
$result = mysql_query(" SELECT * FROM article"); |
Данная переменная будет хранить весь массив данных содержащийся в таблице article. После закрытия соединения с базой, напрямую обращаться к переменной в которой хранятся результаты выборки нельзя. Для того чтобы получить массив в котором хранятся результаты выборки, используют функцию mysql_fetch_array(). Эта функция возвращает значения полей в виде ассоциативного массива:
1 |
$sample = mysql_fetch_array($result); |
В примере действия функции сохранены в переменную, это сделано ради удобства дальнейшего использования. Теперь можно обращаться к ключам данного массива и легко выводить их значения. Например мы хотим вывести название статьи которое в свою очередь хранится в поле title:
1 |
echo $sample['title'] |
Но обычно требуется вывести не одну запись, а все. Для этого можно использовать цикл while:
1 2 3 4 |
while($sample = mysql_fetch_array($result)) { echo $sample['title']; } |
Теперь пока в переменной $sample что-то есть, заголовки будут выводится. Точно так же можно вывести и значения других полей.
Сортировка выборки
Чтобы отсортировать записи в цикле, используют параметр ORDER BY:
1 |
$result = mysql_query(" SELECT * FROM article ORDER BY id DESC"); |
В приведенном примере записи сортируются по id с параметром DESC который в свою очередь устанавливает порядок сортирования по убыванию, таким образом наверху всегда будет самая свежая запись. Вместо id можно использовать любое другое значение, например date.
Кроме DESC, существует параметр ASC который осуществляет сортировку по возрастанию, и параметр RAND который сортирует значения в случайном порядке.
Существует возможность ограничить количество выводимых в цикле записей. Для этого используют параметр LIMIT:
1 |
$result = mysql_query(" SELECT * FROM article ORDER BY id DESC LIMIT 3"); |
Теперь будут выводится только 3 записи. Кроме этого, можно задавать свои условия для выборки. Например выводить статьи определенного автора. Для этого используют оператор WHERE задающий критерии отбора:
1 |
$result = mysql_query(" SELECT * FROM article WHERE autor = 'Олег' ORDER BY id"); |
Итак по данному условию выводятся все записи поле autor которых имеет значение Олег и сортируются по id. Условий может быть несколько, для того чтобы задать несколько условий выборке , нужно перечислить их используя оператор AND(Или использовать оператор OR который означает логическое или):
1 |
$result = mysql_query(" SELECT * FROM article WHERE autor = 'Олег' AND id='3' ORDER BY id"); |
Выборка уникальных(не повторяющихся) значений
Выбрать все не повторяющиеся записи из результата запроса можно с помощью DISTINCT:
1 |
SELECT DISTINCT article FROM date; |
В результате данного запроса, будет получен массив статей с не повторяющейся датой публикации.