Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




База данных для сайта магазин одежды будет состоять из двух таблиц. Первая из них будет хранить всю информацию о страницах сайта, вторая – о пользователях, которым разрешен доступ в администраторскую часть[1].

Создавать таблицы будем при помощи панели PHPMyAdmin 2.6.1. Для этого:

1) Вводим в адресной строке браузера следующий адрес: http://localhost/Tools/phpMyAdmin/;

2) Создаем новую базу данных с названием интернет магазин одежды (Рис 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-02-28; Мы поможем в написании ваших работ!; просмотров: 358 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Что разум человека может постигнуть и во что он может поверить, того он способен достичь © Наполеон Хилл
==> читать все изречения...

2488 - | 2300 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.