КАТЕГОРИИ: Архитектура-(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) |
Проектирование БД, построение динамически генерируемых страниц сайта на основе информации, содержащейся в БД
База данных для сайта Автосалон Лексус г. Павлодар будет состоять из двух таблиц. Первая из них будет хранить всю информацию о страницах сайта, вторая – о пользователях, которым разрешен доступ в администраторскую часть[1]. Создавать таблицы будем при помощи панели PHPMyAdmin 2.6.1. Для этого: 1) Вводим в адресной строке браузера следующий адрес: http://localhost/Tools/phpMyAdmin/; 2) Создаем новую базу данных с названием Interteach (Рис 3.3) Рис. 3.3 Создание новой базы данных
3) Должно появится сообщение «БД interteach была создана». Далее, на вкладке SQL (Рис 3.4):
Рис. 3.4 Выполнение запроса создания таблиц
и делаем следующий запрос (листинг 8):
Листинг 8. SQL запрос для создания таблиц CREATE TABLE `settings` ( `id` int(2) NOT NULL auto_increment, `title` varchar(255) NOT NULL, `text` text NOT NULL, `parent` int(2) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=12;
INSERT INTO `settings` VALUES (2, 'Образование за рубежом', 'Страница "Образование за рубежом" в данный момент находится на стадии разработки. Просим принять свои извинения за причиненные неудобства', 0); INSERT INTO `settings` VALUES (3, 'Языковые курсы', 'Страница "Языковые курсы" в данный момент находится на стадии разработки. Просим принять свои извинения за причиненные неудобства.', 0); INSERT INTO `settings` VALUES (4, 'Каникулярные программы', 'Страница "Каникулярные программы" в данный момент находится на стадии разработки. Просим принять свои извинения за причиненные неудобства.', 0); INSERT INTO `settings` VALUES (5, 'Обменные программы', '<p>Страница "Обменные программы" в данный момент находится на стадии разработки. Просим принять свои извинения за причиненные неудобства.</p>', 0); INSERT INTO `settings` VALUES (6, 'Молодежные программы', '<p>Страница "Молодежные программы" в данный момент времени находится на стадии разработки. Просим принять свои извинения за причиненные неудобства.</p>', 0);
INSERT INTO `settings` VALUES (7, 'Стажировки', '<p>Страница "Стажировки" в данный момент времени находится на стадии разработки. Просим принять свои извинения за причиненные неудобства.</p>', 0); INSERT INTO `settings` VALUES (8, 'Трудоустройство', '<p>Страница "Трудоустройство" в данный момент времени находится на стадии разработки. Просим принять свои извинения за причиненные неудобства.</p>', 0); INSERT INTO `settings` VALUES (1, 'Главная', '<p><span class="style-main">Агентство «InterTeach» </span>предлагает свои услуги по языковой подготовке специалистов вашей фирмы <strong>в городе Экибастузе:</strong>\r\n<ul>\r\n<li>курсы английского и казахского языков в группах и индивидуально, с выездом на место или с предоставлением аудиторий; </li>\r\n<li>занятия проводят преподаватели высшей категории, имеющие сертификаты, опыт преподавания для работников различных сфер;</li>\r\n<li>обучение проводится с использованием специальной учебной литературы ведущих мировых издательств, аудио и видеоматериалов, словарей;</li>\r\n<li>для ваших работников будет представлен курс англ./ каз. языков с учетом специфики деятельности вашего предприятия (коммуникации);</li>\r\n<li>для развития навыков разговорной речи <span class="style-main">встреча с носителями языка</span> 2 раза в неделю. </li>\r\n</ul>\r\n</p><p>Для получения дополнительной информации заполните форму справа.</p>\r\n', 0);
CREATE TABLE `userlist` ( `id` int(3) NOT NULL auto_increment, `user` varchar(50) NOT NULL, `pass` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2;
INSERT INTO `userlist` VALUES (1, 'eiti1994', 'kafedrais');
4) Идем во вкладку Структура и, если все прошло успешно, видим следующее (Рис 3.5) Рис. 3.5 Структура БД
5) Переходим на главную страницу PHPMyADMIN и идем в раздел «Привелегии». Здесь мы должны создать нового пользователя для нашей базы данных (Рис 3.6)
Рис. 3.6 Добавление нового пользователя
6) Теперь приступим к созданию динамически генерируемых страниц. Их будет две – index.php и view.php. Сраница index.php будет отвечать за вывод главной страницы, view.php – за вывод всех остальных. Таким образом наш сайт будет состоять из 2 страниц. 7) Создадим в папке blocks еще один файл php и дадим ему имя bd.php. Этот файл будет отвечать за подключение к нашей уже созданной базе данных Interteach. Помещаем в него следующий код (листинг 9): Листинг 9. Соединение с базой данных <?php $db = mysql_connect ("localhost","admin","819g12hiez"); mysql_select_db ("interteach",$db);?>
Функция mysql_connect устанавливает соединение с сервером server MySQL и возвращает дескриптор соединения с базой данных, по которому все другие функции, принимающие этот дескриптор в качестве аргумента, будут однозначно определять выбранную базу данных. Вторым и третьим аргументами этой функции являются имя пользователя username и его пароль password соответственно. Использование функции mysql_select_db эквивалентно вызову команды USE в SQL-запросе, т. е. функция mysql_select_db выбирает базу данных для дальнейшей работы, и все последующие SQL-запросы применяются к выбранной базе данных. Функция принимает в качестве аргументов название выбираемой базы данных и дескриптор соединения
8) Открываем в программе Dreamweaver страничку index.php. Сейчас она выглядит как на листинге. С учетом того, что у нас появилась база данных, модифицируем ее следующим образом (листинг 10): Листинг 10. Динамически генерируемая страница <?php include ("blocks/bd.php");/*Соединяемся с базой данных*/ $result = mysql_query ("SELECT title, text FROM settings WHERE id='1'",$db);
if (!result){ echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору.<br> <strong>Код ошибки:</strong> </p>"; exit(mysql_error());} if (mysql_num_rows($result)>0){ $myrow = mysql_fetch_array ($result);} else{ echo "<p>Информация по запросу не может быть извлечена. В таблице нет записей</p>"; exit();} ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Агентство Interteach - <?php echo $myrow ['title'];?></title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link rel="stylesheet" type="text/css" href="cssverticalmenu.css" /> <script type="text/javascript" src="cssverticalmenu.js"> </script> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div id="container"> <!--Подключаем шапку сайта--> <?php include ("blocks/header.php");?> <div id="wrapper"> <div id="content"> <h2>Добро пожаловать!</h2> <div id="topicwhite"> <?php echo $myrow ['text'];?> </div> </div> </div> <!--Подключаем форму--> <?php include ("blocks/form.php");?> <!--Подключаем блок рекламы--> <?php include ("blocks/reklama.php");?> <!--Подключаем "подвал" сайта--> <?php include ("blocks/footer.php");?> </div> </body> </html>
Функция mysql_query применяется для отправки серверу SQL-запросов. Функция mysql_fetch_array возвращает значения полей в виде ассоциативного массива, в качестве аргумента принимает дескриптор запроса возвращаемый функцией mysql_query. 9) Перед тем, как приступить к реализации страницы view.php, подправим файл navigation.php, учитывая что все необходимые данные хранятся в базе данных (листинг 11) Листинг 11. Вывод рубрик в цикле <?php include ("blocks/bd.php");/*Соединяемся с базой данных*/ $result2 = mysql_query ("SELECT * FROM settings WHERE parent='0' ORDER BY id",$db); $myrow2 = mysql_fetch_array ($result2); ?> <div id="navigation"> <ul id="verticalmenu" class="glossymenu"> <?php do { printf ("<li><a href='view.php?id=%s'>%s</a>", $myrow2['id'],$myrow2['title']); $d=$myrow2['id']; $result3 = mysql_query ("SELECT * FROM settings WHERE parent=\"$d\"",$db); $myrow3 = mysql_fetch_array ($result3); $c=mysql_num_rows($result3); if ($c!='0') { echo "<ul>"; do { printf ("<li><a href='view.php?id=%s'>%s</a></li>", $myrow3['id'],$myrow3['title']); } while ($myrow3 = mysql_fetch_array ($result3)); echo "</ul></li>"; } else {echo "</li>";} } while ($myrow2 = mysql_fetch_array ($result2)); ?> </ul></div>
10) Таким образом, переменная id передается на страницу view.php через глобальную переменную $_GET['id']. Тогда страница view.php будет сформирована следующим образом (листинг 12):
Листинг 12. Старница view.php <?php include ("blocks/bd.php");/*Соединяемся с базой данных*/ if (isset($_GET['id'])) {$id=$_GET['id'];} $result = mysql_query ("SELECT title, text FROM settings WHERE id='$id'",$db); $myrow = mysql_fetch_array ($result); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html> <head> <title>Агентство Interteach - <?php echo $myrow ['title'];?></title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <link rel="stylesheet" type="text/css" href="cssverticalmenu.css" /> <script type="text/javascript" src="cssverticalmenu.js"> </script> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div id="container"> <!--Подключаем шапку сайта--> <?php include ("blocks/header.php");?> <div id="wrapper"> <div id="content"> <h2><?php echo $myrow ['title'];?></h2> <div id="topicwhite"> <?php echo $myrow ['text'];?> </div> </div> </div> <!--Подключаем форму--> <?php include ("blocks/form.php");?> <!--Подключаем блок рекламы--> <?php include ("blocks/reklama.php");?> <!--Подключаем "подвал" сайта--> <?php include ("blocks/footer.php");?> </div> </body> </html>
Дата добавления: 2017-01-14; Просмотров: 363; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |