В прошлый раз мы начали разговор о MySQL. Сегодня же самое время обсудить особенности реляционных баз данных и написать WAP-приложение, использующее возможности PHP и MySQL.
Описание приложения
Для начала определимся с приложением, которое мы будем писать. Предлагаю создать гостевую книгу. В основные функции гостевой книги входит добавление и чтение приложений пользователями. На примере этих функций мы рассмотрим важнейшие возможности MySQL и особенности работы с ними.
Теперь займёмся проектированием базы данных для гостевой книги.
Проектирование базы данных
Реляционная база данных состоит из таблиц. Поэтому для того, чтобы начать работать с базой, нужно решить какие таблицы будут в неё входить и разработать их структуру.
Таблицы реляционной базы данных – это самые обычные таблицы, состоящие из строк и столбцов. Например, наше приложение будет работать лишь с одной таблицей – её пример приведён ниже.
Обратите внимание на столбец «Msg_number» - это первичный ключ таблицы. Ключ нужен для однозначной идентификации сообщений – значения в этом поле не могут повторяться. С помощью ключевых полей осуществляется связь различных таблиц в более сложных базах данных.
Итак, теперь давайте создадим таблицу в базе данных и приступим к описанию особенностей работы с MySQL.
Создать таблицу можно различными способами – всё зависит от вашего хостинга. Мы экспериментировали с бесплатным хостингом jino-net.ru. Он поддерживает MySQL. В частности, управление базой данных ведётся с помощью интерфейса PHPMyAdmin. Это удобный, интуитивно понятный инструмент. С его помощью мы создали таблицу guestbook в базе данных litexperiments. Ниже приведён SQL-запрос, генерирующий такую таблицу, который может быть встроен в PHP-файл.
Поле Msg_number мы сделали ключевым (Primary_key), использовали для
него числовой тип данных (Int) и установили свойство автоматического увеличения при добавлении записей (Auto_increment). Остальные поля сделали символьными (Varchar), использующими набор символов utf8, задали длины полей с именем пользователя и адресом электронной почты, равными 50 символов, а сообщению отвели 150 символов.
Теперь рассмотрим особенности работы с MySQL посредством инструментов PHP.
Работа с MySQL
Прежде чем работать с базой данных, нужно к ней подключиться. Для подключения к серверу баз данных нужно знать имя сервера, имя пользователя и пароль. Эти данные обычно выдаются при регистрации на хостинге, если вы не знаете их – посмотрите документацию к вашему хостингу или напишите письмо в службу поддержки. В нашем случае данные для подключения к MySQL-серверу выглядят так:
Сервер: localhost (по отношению к PHP-скрипту сервер является локальным хостом)
Имя пользователя: litexperiments
Пароль: parole (реальный пароль не приводится из соображений безопасности).
Для подключения к базе данных нужно выполнить такую команду:
$data_link – это идентификатор соединения, который используется при дальнейшей работе с сервером баз данных.
После того, как мы подключились к серверу, мы можем выбрать базу данных (сервер может содержать множество баз). Наша база данных называется litexperiments, в итоге, запрос на выбор базы выглядит так:
Теперь мы можем выполнять с базой различные действия. В частности, создавать запросы на выборку, запись, удаление информации из таблиц. Для того, чтобы записать информацию в одну из таблиц базы данных, нам понадобится такая конструкция:
Здесь мы используем переменные. Может показаться, что в данном примере они не нужны – данные можно внести прямо в строку запроса. Это действительно так, однако ниже мы будем пользоваться передачей информации из формы, заполненной пользователем, в скрипт. В такой ситуации без использования переменных не обойтись.
Обратите внимание на переменную $number, которая символизирует номер записи. Выше, создавая таблицу guestbook, мы установили для поля Msg_number свойство Auto_Increment – благодаря этому свойству, при добавлении очередной строки в таблицу, Msg_number будет автоматически увеличиваться на 1. Переменная $number пуста – мы используем её лишь для наглядности.
В переменной $sql мы строим запрос, после чего используем эту переменную в функции mysql_huery() для выполнения запроса.
Теперь рассмотрим чтение данных из базы. Мы будем использовать простой запрос, который выведет содержимое базы на WML-страничку.
Строку select * from guestbook можно расшифровать как «выбрать всё из таблицы guestbook». Более сложные запросы содержат условия выборки данных. Например, возможен такой запрос: select * from guestbook where Author_name="Alexander". Такой запрос выведет все сообщения пользователя, который назвался как Alexander.
Выбрав из таблицы guestbook все строки (записи), мы выводим их по очереди. Для этого используем функцию mysql_fetch_array (). Она возвращает в переменную $record массив, содержащий первую строку из строк, выбранных командой mysql_query(). После этого выводим в цикле все значения из массива, используя имена столбцов исходной таблицы. А дальше – выполняем новую команду mysql_fetch_array (). Цикл будет продолжаться до тех пор, пока $record не окажется пустой.
После работы с базой данных, её нужно закрыть. Сделать это можно следующей командой:
Мы рассмотрели основные операции по работе с базой данных. Теперь давайте используем полученные знания для создания работающего приложения.
Реализация гостевой книги
Для того, чтобы реализовать гостевую книгу, нам понадобится создать следующие PHP-документы:
Стартовая страничка со ссылками на страницы добавления и просмотра сообщений.
Страница с полями для ввода данных добавляемого сообщения
Страница, которая содержит скрипт, получающий введённые пользователем данные и добавляющий их в базу
Обратите внимание на конструкцию < go href= "load.php" method="post" > - здесь мы задаём имя скрипта, которому будем передавать данные, введённые пользователем в поля такого вида: < input title="username" name="name" />. Ниже, в строках такого вида:
мы задаём имена передаваемых переменных и их содержимое, которое берётся из полей ввода.
Обратите внимание на строки такого вида: $ email=$_POST['email'] ; - с их помощью мы присваиваем переменным значения, переданные со страницы ввода. Эти значения будут записаны в базу данных. Если попытка записи завершилась успешно, скрипт выведет сообщение «Сообщение добавлено», если нет – сообщение «Произошла ошибка».
Вывод данных гостевой книги в браузере Motorola V535
Выводы
Если вы тщательно проработаете приведенный пример, в дальнейшем вы сможете эффективно использовать WML, PHP и MySQL в своих собственных проектах. Но на этом разговор о мобильных интернет-технологиях не окончен – в следующий раз мы рассмотрим язык WMLScript.
Sony Xperia M4 Aqua Год: 2015 г. Стандарты: GSM 1800/GSM 1900/GSM 850/GSM 900/HSDPA/LTE 4G Размеры: 145,5x72,6x7,3 мм Вес: 136 г.
LG G4 Год: 2015 г. Стандарты: GSM 1800/GSM 1900/GSM 850/GSM 900/HSDPA/LTE 4G Размеры: 148,9x76,1x9,8 мм Вес: 155 г.
Huawei P8max Год: 2015 г. Стандарты: GSM 1800/GSM 1900/GSM 850/GSM 900/HSDPA/LTE 4G Размеры: 182,7x93x6,8 мм Вес: 228 г.
Huawei P8 Год: 2015 г. Стандарты: GSM 1800/GSM 1900/GSM 850/GSM 900/HSDPA/LTE 4G Размеры: 144,9x72,1x6,4 мм Вес: 144 г.
Xiaomi Mi 4i Год: 2015 г. Стандарты: GSM 1800/GSM 1900/GSM 850/GSM 900/HSDPA/LTE 4G Размеры: 138,1x69,6x7,8 мм Вес: 130 г.
Обои от Mobiset на май
Мы предлагаем Вашему вниманию не только стильные, но и полезные обои для рабочего стола Вашего компьютера - с Вашими любимыми телефонами. Разумеется, с символикой Mobiset. Скачать обои можно здесь.
Приглашаем
...новостников, авторов статей и обзоров, переводчиков, других специалистов для работы над проектом Mobiset.ru. Хотите принять творческое участие - пишите, было бы желание - а работу найдём.