Читайте полную версию материала: http://www.mobiset.ru/articles/text/?id=2235
Библиотека : Советы, личный опыт Создаём WAP-сайты. Часть 4. Тонкости MySQL В прошлый раз мы начали разговор о MySQL. Сегодня же самое время обсудить особенности реляционных баз данных и написать WAP-приложение, использующее возможности PHP и MySQL. Описание приложения
Для начала определимся с приложением, которое мы будем писать. Предлагаю создать гостевую книгу. В основные функции гостевой книги входит добавление и чтение приложений пользователями. На примере этих функций мы рассмотрим важнейшие возможности MySQL и особенности работы с ними.
Теперь займёмся проектированием базы данных для гостевой книги.
Проектирование базы данных
Реляционная база данных состоит из таблиц. Поэтому для того, чтобы начать работать с базой, нужно решить какие таблицы будут в неё входить и разработать их структуру.
Таблицы реляционной базы данных – это самые обычные таблицы, состоящие из строк и столбцов. Например, наше приложение будет работать лишь с одной таблицей – её пример приведён ниже.
[+] увеличить
Обратите внимание на столбец «Msg_number» - это первичный ключ таблицы. Ключ нужен для однозначной идентификации сообщений – значения в этом поле не могут повторяться. С помощью ключевых полей осуществляется связь различных таблиц в более сложных базах данных.
Итак, теперь давайте создадим таблицу в базе данных и приступим к описанию особенностей работы с MySQL.
Создать таблицу можно различными способами – всё зависит от вашего хостинга. Мы экспериментировали с бесплатным хостингом jino-net.ru. Он поддерживает MySQL. В частности, управление базой данных ведётся с помощью интерфейса PHPMyAdmin. Это удобный, интуитивно понятный инструмент. С его помощью мы создали таблицу guestbook в базе данных litexperiments . Ниже приведён SQL-запрос, генерирующий такую таблицу, который может быть встроен в PHP-файл.
[+] увеличить
[+] увеличить
Так выглядит информация о таблице в PHPMyAdmin
Поле 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-документы:
Стартовая страничка со ссылками на страницы добавления и просмотра сообщений.
Страница с полями для ввода данных добавляемого сообщения
Страница, которая содержит скрипт, получающий введённые пользователем данные и добавляющий их в базу
Страница для вывода сообщений гостевой книги.
Ниже приведён код каждой из этих страничек:
Стартовая страничка
[+] увеличить
Стартовая страничка в браузере Motorola V535
Страничка с полями для ввода данных
[+] увеличить
Обратите внимание на конструкцию < go href= "load.php" method="post" > - здесь мы задаём имя скрипта, которому будем передавать данные, введённые пользователем в поля такого вида: < input title="username" name="name" /> . Ниже, в строках такого вида:
мы задаём имена передаваемых переменных и их содержимое, которое берётся из полей ввода.
Страничка ввода данных в браузере Motorola V535
Страничка ввода данных в браузере Opera
Страница, записывающая данные в базу
[+] увеличить
Обратите внимание на строки такого вида: $ email=$_POST['email'] ; - с их помощью мы присваиваем переменным значения, переданные со страницы ввода. Эти значения будут записаны в базу данных. Если попытка записи завершилась успешно, скрипт выведет сообщение «Сообщение добавлено », если нет – сообщение «Произошла ошибка ».
Сообщение добавлено успешно
Страница вывода данных из базы
[+] увеличить
Вывод данных гостевой книги в браузере Motorola V535
Выводы
Если вы тщательно проработаете приведенный пример, в дальнейшем вы сможете эффективно использовать WML, PHP и MySQL в своих собственных проектах. Но на этом разговор о мобильных интернет-технологиях не окончен – в следующий раз мы рассмотрим язык WMLScript.
© Заика Александр , Mobiset.ru
Дата публикации статьи - 1 июля 2008 г.
Наша группа ВКонтакте - присоединяйся!
Оперативная и эксклюзивная информация - в 140 знаках! Подписывайтесь на наш канал:
Виджет от SocialMart
Please enable JavaScript to view the comments powered by Disqus.
comments powered by
Смотрите также: Создаём WAP-сайты. Часть 3. PHP и MySQL Создаём WAP-сайты. Часть 2. Основы WML Создаём WAP-сайты. Часть 1. Предварительная подготовка: собираем инструменты Читайте полную версию материала: http://www.mobiset.ru/articles/text/?id=2235