Mobiset.ru - всё о сотовых телефонах

Читайте полную версию материала: http://mobiset.ru/articles/text/?id=2235


Создаём WAP-сайты. Часть 4. Тонкости MySQLБиблиотека: Советы, личный опыт

Создаём 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-документы:


  1. Стартовая страничка со ссылками на страницы добавления и просмотра сообщений.

  2. Страница с полями для ввода данных добавляемого сообщения

  3. Страница, которая содержит скрипт, получающий введённые пользователем данные и добавляющий их в базу

  4. Страница для вывода сообщений гостевой книги.


Ниже приведён код каждой из этих страничек:

Стартовая страничка


[+] увеличить



Стартовая страничка в браузере 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 знаках! Подписывайтесь на наш канал:




comments powered by Disqus

Смотрите также:

Создаём WAP-сайты. Часть 3. PHP и MySQLСоздаём WAP-сайты. Часть 3. PHP и MySQL

Создаём WAP-сайты. Часть 2. Основы WMLСоздаём WAP-сайты. Часть 2. Основы WML

Создаём WAP-сайты. Часть 1. Предварительная подготовка: собираем инструментыСоздаём WAP-сайты. Часть 1. Предварительная подготовка: собираем инструменты




Читайте полную версию материала: http://mobiset.ru/articles/text/?id=2235





Rambler's Top100 Рейтинг@Mail.ru