Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Создание сайта с использованием php-скриптов




Анализ технического задания

Создание базы данных MySQL

Проектная часть

База данных "Телефонные переговоры"

База данных "Телефонные переговоры" должна хранить следующую информацию:

1) Фамилия, Имя, Отчество абонента.

2) Телефонный номер абонента.

3) Телефонный код и название города, куда звонил абонент.

4) Дата разговора.

5) Продолжительность разговора.

6) Тариф за 1 минуту разговора с указанным городом.

7) Домашний адрес абонента.

База данных должна содержать информацию о 10 абонентах, 5 городах. Предусмотреть, чтобы 5 абонентов сделали не менее 2 телефонных разговоров с различными городами.

Проанализировав вариант задания можно сделать вывод, что требуется создать 4 таблицы и установить между ними связи, чтобы избежать избыточности данных.

Название таблицы Список полей
«Клиент» ID, ФИО, №_Телефона, Адрес
«Город» ID, Город, Код_города
«Тариф» ID, Название, Стоимость
«Звонки» ID, Дата, Город_id, Продолжительность, Тариф_id

3.1.2 Создание базы данных «Телефонные переговоры»

В качестве инструментальных средств использовались Denwer 3 с phpmyadmin, MySQL Server 5.1.

Для начала работы потребовалось запустить Denwer и набрать в адресной строке браузера: http://localhost/tools/phpmyadmin/

Рис.1 «Создание новой базы данных»

При создании базы данных используется кодировка cp1251_general_ci, т.к. она является стандартной 8-битной кодировкой для всех русских версий Microsoft Windows.

После чего создаётся два новых пользователя (администратор и гость) с заданием имени и пароля, на основе которых определяются права пользователя системы.

Рис.2 «Добавление пользователя»

 

 

Следующим этапом является непосредственное создание и заполнение таблиц базы данных.

Рис.3 «Создание таблиц»

Достаточно простой интерфейс phpmyadmin помогает упростить процесс добавления таблиц, по сравнению с разработкой SQL скриптов в консоли. Как видно на рис.3 заполнять требуется лишь несколько полей: имя, тип, длинна (когда тип-символьный) и индекс (Primary), позволяющий указать ключевое поле.

Так выглядело бы создание той же таблицы City в виде SQL-скрипта:

CREATE TABLE IF NOT EXISTS `city` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`city` varchar(20) CHARACTER SET utf8 NOT NULL,

`cod` int(11) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=13;

 

Заполнение таблиц происходит в новой форме, где указывается значения соответствующих полей, как представлено на рис.4. Поле ID можно оставлять пустым, т.к. оно является первичным ключом и будет заполняться автоматически.

Рис.4 «Заполнение таблицы»

Результатом заполнения будет таблица представленная на рис.5.

Рис.5 «Таблица Klient»

В командной строке реализация осуществлялась бы с помощью SQL-команды INSERT следующим образом:

INSERT INTO `klient` (`id`, `name`, `phone`, `address`) VALUES

(1, 'Созонова Мария Васильевна', '68-15-43', 'Ульяновск, ул.Ленина, д.7, кв.8 '),

(2, 'Петрова Инна Львовна', '75-09-18', 'Ульяновск, ул.Кузоватовская, д.40, кв.15'),

(3, 'Ткачева Любовь Михайловна', '31-15-86', 'Самара, ул.Комсомольская, д.6, кв.9'),

(4, 'Иванова Анна Петровна', '69-19-51', 'Самара, ул.Красноармейская, д.35, кв.230'),

(5, 'Сотин Евгений Юрьевич', '17-30-28', 'Ульяновск, ул.Гончарова, д.26, кв.12'),

(6, 'Балашев Евгений Иванович', '49-08-69', 'Казань, ул.Бегичева, д.12, кв.8'),

(7, 'Антропов Геннадий Сергеевич', '73-48-19', 'Казань, ул.Островского, д.8, кв.15'),

(8, 'Кутинова Наталья Ильинична, '15-63-21', 'Москва, ул.Горького, д.45, кв.19'),

(9, 'Ульянов Илья Петрович', '48-36-72', 'Москва, ул.Тверская, д.16, кв.73'),

(10, 'Козлова Анна Львовна', '12-38-76', 'Пермь, ул.Адмиралтейская, д.32, кв.315');

 

 

Как только база данных была сформирована, к активному режиму перешёл следующий этап – создание сайта. Первым делом была создана главная страница index.php, которая не несёт под собой особого функционала, т.к. создана в качестве библиотеки, хранящей список таблиц БД, к которым можно получать доступ и вносить изменения.

<body>

<h1> Список таблиц </h1>

<ol>

<li><a href = "client.php">Клиент</a>

<li> <a href = "tarif.php">Тариф </a>

<li> <a href = "city.php">Город </a>

<li> <a href = "call.php">Звонки </a>

</body>

В дальнейшем потребовалось подключить базу данных к Web-интерфейсу. Чтобы получить доступ к БД из Web, используя PHP, необходимо выполнить следующие шаги:

· Подключение к серверу MySQL;

· Выбор базы данных;

· Выполнение запроса к базе данных;

· Получение результата запроса;

· Отсоединение от базы данных.

Для подключения к серверу MySQL в PHP использовалась функция mysql_connect().

Таким образом была подключена первая таблица БД «city»:

<?

if (!$link = mysql_connect('localhost', 'root', '')) {

echo 'Не удалось подключиться к mysql';

exit;

}

if (!mysql_select_db('newbas', $link)) {

echo 'Не удалось выбрать базу данных';

exit;

}

$sql = 'SELECT * FROM city';

$result = mysql_query($sql, $link);

if (!$result) {

echo "Ошибка DB, запрос не удался\n";

echo 'MySQL Error: '. mysql_error();

exit;

}

echo "<table width=100% border = 1>";

echo "<tr><td>N<td>city<td>cod</tr>";

while ($row = mysql_fetch_assoc($result)) {

echo "<tr><td>".$row['id']."<td>".$row['city']."<td>".$row['cod']."</tr>";

}

echo "</table>";

mysql_free_result($result);

echo "<a href = 'index.php'>Главная</a>";

?>

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

Для создания возможности добавления информации в таблицы потребовалось создать соответствующие формы под каждую из них, с указанием необходимых полей. Например, форма для таблицы «Клиент» add_client.php:

<form name = "add_client_form" action = "add_client_in_BD.php" method = "POST">

ФИО <input type = "text" name = "fio"> <br> <br>

Телефон <input type = "text" name = "phone"> <br> <br>

Адрес <input type = "text" name = "address"> <br> <br>

<input type = "submit">

</form>

Как видно, в коде указана ссылка на следующий скрипт: add_client_in_BD.php, который выполняет непосредственную реализацию задуманного, внося заполненные изменения в базу данных с помощью sql запроса INSERT.

<?

error_reporting(0);

if (!$link = mysql_connect('localhost', 'root', '')) {

echo 'Не удалось подключиться к mysql';

exit;

}

if (!mysql_select_db('newbas', $link)) {

echo 'Не удалось выбрать базу данных';

exit;

}

$sql = "INSERT into klient (name, phone, address) values ('".$_POST['fio']."','".$_POST['phone']."','".$_POST['address']."')";

$result = mysql_query($sql, $link);

mysql_free_result($result);

header ("Location: http://lab1.local/client.php");

?>

Реализация удаления осуществляется гораздо проще, и всего лишь одним скриптом для каждой таблицы, с помощью sql-запроса DELETE:

<?

error_reporting(0);

if (!$link = mysql_connect('localhost', 'root', '')) {

echo 'Не удалось подключиться к mysql';

exit;

}

if (!mysql_select_db('newbas', $link)) {

echo 'Не удалось выбрать базу данных';

exit;

}

$sql = "DELETE from klient where id = ".$_GET['id'];

$result = mysql_query($sql, $link);

mysql_free_result($result);

header ("Location: http://lab1.local/client.php");

?>

Удаление осуществляется при нажатии на крестик напротив соответствующей записи, подобный способ реализован в основном php-скрипте таблицы client.php:

<td align = 'center'><a href = 'delete_client.php?id=".$row['id']."'

onclick= \"return confirmDelete ('Вы действительно хотите удалить запись?')\">

<image src = 'images/b_drop.png'></tr>";

Наиболее сложным оказалось создание скриптов для редактирования базы данных. Аналогично как с удалением, редактирование осуществляется при нажатии на картинку напротив записи.

<td align = 'center'><a href = 'edit_form.php?id=".$row['id']."'><img src = 'images/b_edit.png'> </tr>";

При нажатии происходит переход в форму редактирования edit_form.php. Процедура вызова формы намного затрудняется, т.к. прежде чем вносить изменения необходимо получить доступ к изменяемым данным, для этого в данном скрипте используется sql-запрос SELECT:

<?

if (!$link = mysql_connect('localhost', 'root', '')) {

echo 'Не удалось подключиться к mysql';

exit;

}

if (!mysql_select_db('newbas', $link)) {

echo 'Не удалось выбрать базу данных';

exit;

}

$sql = ' SELECT * FROM klient where id = '.$_GET['id'];

$result = mysql_query($sql, $link);

if (!$result) {

echo "Ошибка DB, запрос не удался\n";

echo 'MySQL Error: '. mysql_error();

exit;

}

while ($row = mysql_fetch_assoc($result)) {

echo "<form name = \"add_client_form\" action = \"edit_client_in_BD.php\" method = \"POST\">";

echo "ФИО <input type = \"text\" name = \"fio\" size = 50 value = \"".$row['name']."\"><br><br>";

echo "Телефон <input type = \"text\" name = \"phone\" size = 50 value = \"".$row['phone']."\"><br><br>";

echo "Адрес <input type = \"text\" name = \"address\" size = 50 value = \"".$row['address']."\"><br><br>";

echo "<input type = \"hidden\" name = \"id\" value = \"".$row['id']."\">";

echo "<input type = \"submit\">";

echo "</form>";

}

?>

Затем в силу вступает второй скрипт edit_client_in_BD.php, как ясно из названия, предназначенный для непосредственного внесения изменений в саму базу данных с помощью sql-запроса UPDATE

<?

error_reporting(0);

if (!$link = mysql_connect('localhost', 'root', '')) {

echo 'Не удалось подключиться к mysql';

exit;

}

if (!mysql_select_db('newbas', $link)) {

echo 'Не удалось выбрать базу данных';

exit;

}

$sql = "UPDATE klient set name = '".$_POST['fio']."', phone = '".$_POST['phone']."', address = '".$_POST['address']."' where id = ".$_POST['id'];

//echo $sql;

$result = mysql_query($sql, $link);

mysql_free_result($result);

header ("Location: http://lab1.local/client.php");

?>

По такому же принципу создаются и остальные скрипты для редактирования, добавления и удаления данных.

 




Поделиться с друзьями:


Дата добавления: 2015-06-30; Просмотров: 478; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.123 сек.