КАТЕГОРИИ: Архитектура-(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 таблицы и установить между ними связи, чтобы избежать избыточности данных.
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; Просмотров: 509; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |