Студопедия

КАТЕГОРИИ:


Архитектура-(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; Просмотров: 362; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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