Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Проектирование БД, построение динамически генерируемых страниц сайта на основе информации, содержащейся в БД



База данных для сайта Автосалон Лексус г. Павлодар будет состоять из двух таблиц. Первая из них будет хранить всю информацию о страницах сайта, вторая – о пользователях, которым разрешен доступ в администраторскую часть[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-03-14; Просмотров: 735; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.061 с.)
Главная | Случайная страница | Обратная связь