Введение Компьютеры были созданы для решения вычислительных задач, однако со временем они все чаще стали использоваться для построения систем обработки документов, а точнее, содержащейся в них информации. Такие системы обычно и называют информационными. В качестве примера можно привести систему учета отработанного времени работниками предприятия и расчета заработной платы, систему учета продукции на складе, систему учета книг в библиотеке и т.д. Все вышеперечисленные системы имеют следующие особенности: для обеспечения их работы нужны сравнительно низкие вычислительные мощности данные, которые они используют, имеют сложную структуру необходимы средства сохранения данных между последовательными запусками системы Другими словами, информационная система требует создания в памяти ЭВМ динамически обновляемой модели внешнего мира с использованием единого хранилища - базы данных. Для дальнейшего обсуждения нам необходимо ввести понятие предметной области: Предметная область - часть реального мира, подлежащая изучению с целью организации управления и, в конечном счете, автоматизации. Предметная область представляется множеством фрагментов, например, предприятие - цехами, дирекцией, бухгалтерией и т.д. Каждый фрагмент предметной области характеризуется множеством объектов и процессов, использующих объекты, а также множеством пользователей, характеризуемых различными взглядами на предметную область. Словосочетание "динамически обновляемая" означает, что соответствие базы данных текущему состоянию предметной области обеспечивается не периодически, а в режиме реального времени. При этом одни и те же данные могут быть по-разному представлены в соответствии с потребностями различных групп пользователей. Отличительной чертой баз данных следует считать то, что данные хранятся совместно с их описанием, а в прикладных программах описание данных не содержится. Независимые от программ пользователя данные обычно называются метаданными. В ряде современных систем метаданные, содержащие также информацию о пользователях, форматы отображения, статистику обращения к данным и др. сведения, хранятся в словаре базы данных. 4 Таким образом, система управления базой данных (СУБД) важнейший компонент информационной системы. Для создания и управления информационной системой СУБД необходима в той же степени, как для разработки программы на алгоритмическом языке необходим транслятор. Основные функции СУБД: управление данными во внешней памяти (на дисках); управление данными в оперативной памяти; журнализация изменениий и восстановление базы данных после сбоев; поддержание языков БД (язык определения данных, язык манипулирования данными). Обычно современная СУБД содержит следующие компоненты ( рис 1.): ядро, которое отвечает за управление данными во внешней и оперативной памяти и журнализацию, процессор языка базы данных, обеспечивающий оптимизацию запросов на извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода, подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД а также сервисные программы (внешние утилиты), обеспечивающие ряд дополнительных возможностей по обслуживанию информационной системы. Рис 1. Компоненты СУБД. 5 Основные этапы проектирования баз данных Проектирование базы данных состоит из следующих основных этапов. 1. Системный анализ предметной области 2. Инфологическое проектирование 3. Выбор СУБД 4. Датологическое проектирование 5. Физическое проектирование 1. Системный анализ предметной области На первом этапе проектирования баз данных рассматриваются цели и задачи с помощью которой они будут решатся. Анализируются информационные потребности будущих пользователей баз данных. Рассматриваются формы входных и выходных потоков, которые будут составлять основу баз данных. Затем уточняются алгоритмы и процедуры обработки данных хранимой в базе данных. Формируются требования, которым должна удовлетворять проектируемая база данных и определяется примерный список объектов предметной области, свойства которых будут использоваться при разработке базы данных. 2. Инфологическое проектирование На второй стадии проектирования выполняется моделирование данных. Моделирование данных – это процесс создания логической структуры данных. Существует два подхода к моделированию данных: 1. Модель «Сущность-связь» 2. Семантическая объектная модель 6 Эти модели представляют собой языки для описания структуры данных и их связей в представлениях пользователей. Моделирование данных, подобно блок-схемам, отражают логику программы. Модель «Сущность-Связь». Сущность – это объект, идентифицируемый в рабочей среде пользователя за которым пользователь хотел бы наблюдать. Класс сущностей – это совокупность сущностей, которая описывается структурой, либо форматом сущностей, составляющих этот класс. Экземпляр сущности – представляет собой конкретную сущность. Атрибуты сущности – это свойства сущности, которые описывают характеристики сущности. Идентификаторы – это атрибуты, с помощью которых экземпляры именуются или идентифицируются. Если идентификатор указывает на один экземпляр сущности, то его значение называется уникальным. Если идентификатор не является уникальным, то его значение определяется некоторым множеством экземпляров сущности. Связи – это взаимоотношения сущностей выраженная связями. Модель «Сущность-Связь» включает в себя классы связей и экземпляры связей. Классы связей – это взаимоотношения между классами сущностей. Экземпляры связей – это взаимоотношения между экземплярами сущностей. Типы связей: 1) Связь один к одному (1:1) – одиночный экземпляр сущности одного типа связан с одиночным экземпляром сущности другого типа. 2) Связь один ко многим (1:М) – один экземпляр сущности связан со многими экземплярами другой сущности. 3) Связь многие ко многим (М:N) – несколько экземпляров одной сущности связаны с несколькими экземплярами другой сущности. Модель «Сущность-Связь» или ER-диаграммы включают в себя изображения сущностей в виде прямоугольников (или прямоугольников с закругленными углами), а связей в виде ромбиков (или ромбиков с закругленными углами). 7 На ER-диаграммах атрибуты обозначаются эллипсами. Если атрибутов у сущности много, то чтобы не загружать ER-диаграмму, атрибуты помещают в прямоугольник, в котором идет перечисление всех атрибутов сущности. Семантическая объектная модель. Данная модель используется для моделирования данных на этапе инфологического моделирования. Семантический или смысловой объект – это объект, который в определенной степени моделирует смысл пользовательских данных. Они более точно моделируют представления пользователей. У семантических объектов есть имя, а также есть имя и у класса, отличающего его от других объектов и классов. Семантическая модель имеет набор атрибутов. Атрибуты описывают те характеристики объекта, которые необходимы для удовлетворения информационных потребностей в аспекте решаемых задач. Для моделирования данных в семантических объектах используется объектные диаграммы. Такие диаграммы используются разработчиками баз данных для описания и визуального представления структуры объектов. Объекты в них отражаются в вертикально ориентированных прямоугольниках. Имя объекта указывается внутри прямоугольника в верхней его части, а затем следует список атрибутов по порядку их значимости для этого объекта. Для описания типов семантических объектов используются следующие понятия: 1. Однозначный атрибут - атрибуты с максимальным кардинальным числом равным 1. 2. Многозначный атрибут – атрибут, имеющий максимальное кардинальное число большее 1. 3. Необъектный атрибут – это простой или групповой атрибут. Типы объектов: простые, ассоциативные, родитель. композитные, составные, гибридные, 3. Выбор СУБД При выборе СУБД руководствуются следующими соображениями: 8 - аппаратное обеспечение, на котором в дальнейшем будет работать проектируемая база данных; - системное программное обеспечение, с которым будет в последствии работать проектируемая база данных и соответствующее ей приложения; - методология и подходы, к программированию реализованные в той или иной СУБД; - модель данных, которая встроена в конкретную СУБД; Выбор СУБД полностью определяется на II этапе построения базы данных, т. к. оно зависит от той модели данных, которая встроена в выбранную СУБД. 4. Датологическое проектирование После того, как выбор СУБД завершён, необходимо приступить к проектированию датологической модели базы данных. При формировании датологической схемы, каждая из определённых в концептуальной схеме сущностей отображается в таблицу, которая является одним отношением. При этом следует учитывать ограничения на размер таблиц, которые накладывает конкретная СУБД. 5. Физическое проектирование На этом этапе необходимо на конкретной СУБД, которую выбрали ранее, реализовать базу данных по той информации, которую собрали, обработали и подготовили (на предыдущих этапах проектирования базы данных). Описываются модули, их назначение, а также структура модулей. Язык SQL. SQL (англ. Structured Query Language - язык структурированных запросов) - универсальный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Этот язык был разработан IBM (экспериментальная СУБД "System R") в 1974-1979 годах. Первый стандарт языка SQL был принят Американским национальным институтом стандартизации (ANSI) в 1987 (так называемый SQL level 1) и несколько уточнён в 1989 году (SQL level 2), 1992 и 1999 году. После этого, индустрия начала широко использовать SQL как язык реляционных баз данных, и на сегодняшний день практически каждая база данных основана на SQL. Архитектура данных, к которой обращается SQL называется реляционной. В реляционных базах данных все данные представлены в виде 9 простых таблиц, разбитых на строки и столбцы, на пересечении которых расположены данные. Запросы к таким таблицам возвращают таблицы, которые сами могут становиться предметом дальнейших запросов. Каждая база данных может включать несколько таблиц, которые, как правило, связаны друг с другом, откуда и произошло название реляционные. Взаимосвязь этапов проектирования БД Начальным шагом проектирования ИС является построение инфологической модели предметной области. Предварительная инфологическая модель строится еще на предпроектной стадии и затем уточняется на более поздних стадиях проектирования. Затем на ее основе строится даталогическая модель. Физическая и внешняя модели после этого могут строиться в любой последовательности по отношению друг к другу, в том числе и параллельно. На рис. 2 показана взаимосвязь этапов проектирования БД. Как видно из рисунка, при проектировании БД возможен возврат на предыдущие уровни. При этом возможны два типа возврата: первый обусловлен необходимостью пересмотра результата проектирования (например, для улучшения полученных характеристик, обхода ограничений и т.п.), второй тип вызван потребностью уточнения предыдущей модели (как правило, инфологической) в целях получения дополнительной информации для проектирования или при выявлении противоречий в модели. Рис 2. Взаимосвязь этапов проектирования БД. 10 Инфологическая модель Инфологическая модель для предметной области «Домашняя аудиотека» будет выглядеть следующим образом: ИО1 ИО2 Песня Аудиофайл s s Имя файла C1 Путь к файлу C2 s s s s Размер s s s s C3 D Дата создания C4 Дата изменения C5 Дата изменения C6 Размер s Тип s Компьютер C7 s mp3 s C8 C14 wav s s частота C9 бит-рейт C10 частота C12 скорость потока C13 Название C15 Длительность C16 Комментарий C17 Оценка C18 ИО3 Носитель s ИО4 Источник s s Издательство C24 s Авторские права C25 s URL-адрес s s C26 s Исполнители C19 Автор альбома C20 Альбом C21 Жанр C22 Год C23 Воспроизведение 11 Датологическая модель Данная модель определяет состав таблиц, входящих в нашу базу данных и связи между этими таблицами. Как было указано ранее у нас имеются объекты с идентификаторами ИО1-ИО4 и свойствами С1-С25. Наша база данных состоит из 4 таблиц: Audiofile(ИО1,C1,C2,C3,C4,C5,C6.C7,C8,C9,C10,C11,C12,C13) song(ИО2,C15,C16,C17,C18) carrier(ИО3,C19,C20,C21,C22,C23) sourse(ИО4,C24,C25,26) R(ИО1, ИО2, ИО4, ИО4) Для разработки базы данных использовался MySQL Workbench 5.2 CE. MySQL Workbench — инструмент для визуального проектирования баз данных, интегрирующий проектирование, моделирование, создание и эксплуатацию БД в единое бесшовное окружение для системы баз данных MySQL. Рассмотрим основные возможности MySQL Workbench : Позволяет наглядно представить модель базы данных в графическом виде. Наглядный и функциональный механизм установки связей между таблицами, в том числе «многие ко многим» с созданием таблицы связей. Reverse Engineering — восстановление структуры таблиц из уже существующей на сервере БД (связи восстанавливаются в InnoDB, при использовании MyISAM — связи необходимо устанавливать вручную). Удобный редактор SQL запросов, позволяющий сразу же отправлять их серверу и получать ответ в виде таблицы. Возможность редактирования данных в таблице в визуальном режиме. С его помощью мы создали нашу базу данных, представленную ниже. 12 Рис. 3 ER-Диаграмма. 13 Программная реализация В связи с бурным развитием сетевых технологий и появлением различных новых стандартов, программная реализация данной задачи осуществляется в виде Web-приложения. Языком основных процедур и функций, необходимых для взаимодействия с БД и создания динамических Web-страниц, является популярный в настоящее время скриптовый язык PHP. PHP – это язык обработки гипертекста (HTML), используемый на стороне сервера (serversidescriptinglanguage), конструкции которого вставляются в HTML-текст. В 2003 году вышла версия PHP 5.0 на базе машины ZendEngine2 (фирма ZendTechnologiesLtd). PHP дает возможности для создания полномасштабных приложений. Начиная с пятой версии его можно называть объектно-ориентированным. PHP является открытым программным продуктом, что означает его бесплатность и возможность создавать свои собственные расширения языка. Возможности PHP: • поддерживаемые технологии: платформы Win32 (9x/NT/2000/XP), UNIX, OS/2, QNX, MacOS, BeOS, OCX; • совместимость с серверами: Apache (Win32, UNIX), phttpd, fhttpd, thttpd, ISAPI(Zeus, IIS), NSAPI, Roxen/Caudium, AOLServer; • поддержка технологий MacromediaFlash; COM, XML, Java, CORBA, WDDX, • развитая функциональность для работы с сетевыми соединениями; • поддерживает свыше 20 баз данных и имеет развитую функциональность для работы с ними; • возможность приложений; создания полноценных объектно-ориентированных • сравнительно простой синтаксис и удобство в практическом использовании; • бесплатность; • открытость кода, благодаря которой можно создавать собственные расширения языка. 14 PHP сильно отличается от других языков программирования своей простотой. Так при создании программы не приходится учитывать многочисленные мелочи, которые портят жизнь программистам на Perl и C++, не надо думать о правах доступа к файлам сценария, не надо прописывать точные пути к различным модулям, нет необходимости следить за отсутствием в файле скрипта недопустимых символов и т.д. Синтаксис языка PHP позволяет быстро освоить этот язык любому, кто знаком с HTML, а если имеется опыт программирования на других языках программирования, то будет возможность сравнить его с другими языками на собственном опыте и, наверняка забытьо использовании других языков при разработке приложений для интернет, используемых на стороне сервера. Наряду с PHP, несомненно, при создании Web-страниц также использовался язык гипертекстовой разметки HTML .Для более удобного создания сайта-каталога использовался Macromedia Dreamweaver 8. Macromedia Dreamweaver 8 (в переводе – ткач мечты) – HTML-редактор, разработанный компанией Macromedia. Богатый инструментарий, удобный интерфейс, открытость приложения для всевозможных настроек и другие особенности делают Dreamweawer одним из самых популярных HTMLредакторов в мире.Возможности Macromedia Dreamweaver 8 значительно шире, чем возможности обычных редакторов для создания веб-страниц. Однако вместе с этим программа благодаря легко настраиваемому и простому пользовательскому интерфейсу подходит как для профессионалов, так и начинающих создателей веб-проектов любой сложности.Основной упор в данном продукте сделан на визуализацию разработки веб-страницы. Работа проходит в режиме WYSIWYG (What You See Is What You Get – что видишь, то и получаешь), то есть Dreamweaver объединяет в себе средство для визуального расположения элементов, управления их свойствами на уровне языка HTML и средства поддержки Dynamic HTML. Macromedia Dreamweaver обеспечивает: •генерацию свободного от ошибок HTML-кода; •динамическое отображение создаваемой страницы в выбранном браузере; •сохранение расположения для ранее созданных документов и документов, созданных другими средствами; •средства наглядного дизайна таблиц и фреймов; 15 •генерацию Dynamic HTML для различных браузеров; •расширяемую коллекцию скриптовых программ JavaScript; •поддержку анимации, схожую с инструментами Macromedia Director. Кроме этого •Macromedia Dreamweaver 8 – это и разработчик дизайна, и редактор кода в одном инструменте; •Dreamweaver 8 позволяет с легкостью использовать новые технологии дизайна и кодирования; •с помощью Dreamweaver 8 и Flash Video поместить видео на сайт не составит никакого труда; •мощная CSS-панель предоставляет возможность произвести изменения, не набирая код вручную; • Dreamweaver взаимодействует с XML. 16 Тестирование работы сайта. Чтобы зайти на сайт аудиотеки, вводим адрес magateka.ru и перед нами открывается главная страница (рис. 4). Рис 4. Главная страница сайта. Чтобы получить информацию о музыке можно зайти в раздел «Исполнители» и выбрать песни интересующего нас исполнителя. Затем выбираем одну из песен этого исполнителя и получаем всю информацию об этой песне (рис. 5,6). 17 Рис. 5. Список исполнителей Рис. 6. Список песен выбранного исполнителя. 18 Чтобы вывести все песни, имеющиеся в базе данных, нажимаем на ссылку «Вся музыка» (рис.7). Если кликнуть на одну из песен в появившемся списке, то на странице отобразится вся информация о песне (рис.8). Рис 7. Вся музыка из базы данных. 19 Рис. 8. Вывод информации из базы данных. 20 Поиск по сайту. Для поиска вводим название искомой композиции и нажимаем кнопку “Найти” (рис. 9, 10). Рис. 9. Ввод названия песни. Рис 10. Результат поиска. 21 Добавление информации в базу данных. Вводим все данные о аудиофайле и нажимаем кнопку Добавить (рис. 11). Рис 11. Добавление информации. Рис 12 . Добавление информации. 22 Заключение В ходе выполнения курсовой работы разрабатывалась сайт и база данных домашней аудиотеки. Были закреплены знания в области программирования, создания сайтов и баз данных. Во время создания сайта я научился работать в среде MySQL, изучил синтаксис языка PHP и HTML. В результате, сайт получился лаконичным функциональным, а вся информация для работы сайта выбирается из базы данных, что и было целью данной курсовой работы. 23 Список использованной литературы 1. В. В. Дунаев. «Базы данных. Язык SQLдля студента». 2006, БХВ-Петербург. 2. Джанин Орднер, Сюзанна Гарднер «Dreamweaver Mx 2004 для “чайников” ».2004, Москва. 3. Дмитрий Ченгаев. « Как сделать современный веб-сайт». 2007, www.bravoo.net. 4. Робин Никсон «Создаем динамические веб-сайты с помощью PHP, MySQL и JavaScript». 2011,Питер. 24 Приложение. Сайт домашней аудиотеки. Index.php <style type="text/css"> <!-body,td,th { color: #FFFFFF; } body { background-color: #000000; background-image: url(img/fon1.jpg); } --> </style><table width="200" height="172" border="0"> <tr> <?php include("blocks/header.php")?> </tr> <tr> <?php include("blocks/left.php")?> <?php include("blocks/tail.php")?> <?php include("blocks/right.php")?> </tr> <tr> <?php include("blocks/niz.php")?> </tr> </table> tail.php <link href="../222.css" rel="stylesheet" type="text/css" /> <style type="text/css"> <!-.стиль1 { color: #3399FF; font-family: Arial, Helvetica, sans-serif; } --> </style><center><td width="100"> <?php include ("dbConnect.php"); $id = $_GET["id"]; if (($id!=1) and ($id!=2) and ($id!=3) and ($id!=4) and ($id!=5) and ($id!=6)) echo' <h1>Добро пожаловать!<img src="../../img/fon2.jpg" width="100" height="90"/></h1> <h2>Сайт домашней аудиотеки Магомеда Абакарова.</h2> <h3>На сайте вы найдёте всю информацию о музыке на моём компьютере, а также имеете возможность дополнить базу данных новой информацией.</h3>'; if ($id == 2) 25 echo ' <center><p class="maga"><a href="autors/fedde.php" class="maga стиль1">Fedde Le Grand</a></center> <center><p class="maga"><a href="autors/50cent.php" class="maga стиль1">50 CENT</a></center> <center><p class="maga"><a href="autors/beyonce.php" class="maga стиль1">Beyonce</a></center> <center><p class="maga"><a href="autors/akon.php" class="maga стиль1">Akon</a></center> <center><p class="maga"><a href="autors/rihanna.php" class="maga стиль1">Rihanna</a></center> <center><p class="maga"><a href="autors/cblock.php" class="maga стиль1">CBlock</a></center> <center><p class="maga"><a href="autors/justin.php" class="maga стиль1">Justin Timberlake</a></center> <center><p class="maga"><a href="autors/deepside.php" class="maga стиль1">Deepside Deejays</a></center> <center><p class="maga"><a href="autors/liljon.php" class="maga стиль1">Lil Jon</a></center> <center><p class="maga"><a href="autors/marat.php" class="maga стиль1">Marat MC</a></center>'; if ($id == 3) { $res=mysql_query ('SELECT * FROM carrier,song WHERE carrier.id=song.id ORDER by "ID" ',$db); $arr=mysql_fetch_array($res); $s ='all.php?get='; do { $i=$arr["ID"]; { echo '<p class="maga">'.$i.'. <a href='.$s.$i.' class="maga стиль1">'.$arr["autors"].' - '.$arr["name"].'</a>'.'<br> '; }} while ($arr=mysql_fetch_array($res)); } if ($id == 4) { echo '<h1>Поиск композиций</h1>'; echo '<br>'; echo 'Введите название песни: '; echo '<br>'; echo '<br>'; echo '<form action="search.php" method="post" name="text"> <input name="text" type="text" size="20" maxlength="50"/> <input name="submit" type="submit" value="Найти" title="Нажмите для поиска" /> </form>'; } if ($id == 5) { echo '<h1>Добавление информации в базу данных.</h1><strong> <br><h2>Введите введите данные о аудиофайле, заполнив следующие поля:</strong></h2>'; echo ' <form action="add.php" method="post" name="text"><br> 26 Имя файла:------><input name="file" type="text" size="20" maxlength="50"/> ---Путь-> <input name="path" title="Введите сюда путь к файлу" type="text" size="20" maxlength="50"/> Тип файла-> <input name="type" title="mp3, wav и т.д." type="text" size="20" maxlength="50"/><br><br> Создан:---------> <input name="creation_date" title="Дата создания файла" type="text" size="20" maxlength="50"/> Изменен> <input name="date_of_change" type="text" title="Дата изменения файла" size="20" maxlength="50"/> Размер:-----><input name="size" type="text" title="Разиер файла в mb" size="20" maxlength="50"/><br> <br><br><h2>Введите данные о исполнителе и о альбоме:</h2><br> Исполнители:-><input name="autors" type="text" size="20" maxlength="50"/> Автор альбома:<input name="album_autor" type="text" size="20" maxlength="50"/> Альбом-><input name="album" type="text" title="Название альбома" size="20" maxlength="50"/><br><br> -----Жанр-----><input name="genre" type="text" size="20" maxlength="50"/> ---Год-------><input name="year" type="text" size="20" maxlength="50"/> <br><br><h2>Введите данные о композиции:</h2><br> Название------type="text" size="20" maxlength="50"/> Длительность-><input name="length" type="text" size="11" maxlength="50"/> Комментарии-><input name="komment" type="text" title="Название альбома" size="18" maxlength="50"/><br> ><input name="name" <br><br><h2>Введите данные о источнике:</h2><br> Издательство--type="text" size="20" maxlength="50"/> Авторские права><input name="copyright" type="text" size="13" maxlength="50"/> ----URL----><input name="url" type="text" size="18" maxlength="50"/><br> ><input name="publisher" <br><p align="center"><input name="submit" align="right" size="90" type="submit" value="Добавить" /></p> </form>'; } if ($id==6) echo ' 27 <h2>База данных домашней аудиотеки</h2><br><h3>Данный сайт является результатом курсовой работы по дисциплине "Базы данных". Работу выполнил студент 3-ого курса, факултьтета Информатики и управления, специальности ПОВТиАС, будущий программист Microsoft, Магомед Абакаров.</h3> '; ?> </td></center> left.php <link href="../222.css" rel="stylesheet" type="text/css" /> <style type="text/css"> <!-.стиль1 { color: #3399FF; font-family: Arial, Helvetica, sans-serif; } body { background-image: url(../img/fon1.jpg); } --> </style> <td width="30" ><p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <ul> <li><p class="maga"><a href="../index.php" class="maga стиль1">Главная</a></li> <li><p class="maga"><a href="../index.php?id=2" class="maga стиль1">Исполнители</a></li> <li><p class="maga"><a href="../index.php?id=3" class="maga стиль1">Вся музыка</a></li> <li><p class="maga"><a href="../index.php?id=4" class="maga стиль1">Поиск</a></li> <li><p class="maga"><a href="../add1.php" class="maga стиль1">Добавить</a></li> <li><p class="maga"><a href="../index.php?id=6" class="maga стиль1">О сайте</a></li> </ul> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p></td> 28 search.php <style type="text/css"> <!-body,td,th { color: #FFFFFF; } body { background-color: #000000; background-image: url(img/fon1.jpg); } --> </style><table width="870" height="172" border="0"> <tr> <?php include("blocks/header.php")?> </tr> <tr> <?php include("blocks/left.php")?><td width="100"> <?php include ("dbConnect.php"); $p = $_POST["text"]; $res=mysql_query("SELECT * FROM audiofile,song,carrier,sourse WHERE song.id=audiofile.id and song.id=carrier.id and song.id=sourse.id and song.name='$p'",$db); if (!$res) { echo 'Запрос не прошёл. Ошибка - '; exit (mysql_error()); } $arr=mysql_fetch_array($res); if (strcasecmp($p,$arr["name"])==0) { echo '<br><h1>'.$arr["autors"].' - '.$arr["name"].'</h1>'; echo ' <p align="left"><strong>----- Песня </strong>---------------------------------------------------------------------------------------------------</p> <p><p>Название: '.$arr['name'].'</p>'.'<p>'.'Длительность: '.$arr['length'].'</p>'.'<p>'.'Комментарии: '.$arr['komment'].'</p></p> <p><strong>----- Носитель </strong>---------------------------------------------------------------------------------------------</p> <p><p>Исполнители : '.$arr['autors'].'</p>'.'<p>'.'Автор альбома: '.$arr['album_autor'].'</p>'.'<p>'.'Альбом: '.$arr['album'].'</p>'.'<p>'.'Жанр: '.$arr['genre'].'</p>'.'<p>'.'Год: '.$arr['year'].'</p></p> <p><strong>----- Источник </strong>---------------------------------------------------------------------------------------------</p> <p><p>Издательсво: '.$arr['publisher'].'</p>'.'<p>'.'Авторские права: '.$arr['copyright'].'</p>'.'<p>'.'URL: '.$arr['URL'].'</p></p> <p><strong>----- Аудиофайл </strong>------------------------------------------------------------------------------------------</p> <p>Имя файла: '.$arr['file'].'</p>'.'<p>'.'Путь: '.$arr['path'].'</p>'.'<p>'.'Размер: '.$arr['size'].'</p>'.'<p>'.'Формат: '.$arr['type'].'</p>'.'<p>'.'Дата создания: 29 '.$arr['creation_date'].'</p>'.'<p>'.'Дата изменения: '.$arr['date_of_change'].'</p>'.'<p>'.'Компьютер: '.$arr['computer'].'</p>'.'<p>'; } else echo '<h1>Извините, но песни '.$p.' нет в базе данных.</h1>';?></td> <?php include("blocks/right.php")?> </tr> <tr> <?php include("blocks/niz.php")?> </tr> </table> add.php <style type="text/css"> <!-body,td,th { color: #FFFFFF; } body { background-color: #000000; background-image: url(img/fon1.jpg); } --> </style><table width="870" height="172" border="0"> <tr> <?php include("blocks/header.php")?> </tr> <tr> <?php include("blocks/left.php")?> <td width="300"><?php include ("dbConnect.php"); $file = $_POST["file"]; $path = $_POST["path"]; $type = $_POST["type"]; $create_date = $_POST["creation_date"]; $date_of_change = $_POST["date_of_change"]; $size = $_POST["size"]; $comp = "MAGA-PC"; $autors = $_POST["autors"]; $album_autor = $_POST["album_autor"]; $album = $_POST["album"]; $genre = $_POST["genre"]; $year = $_POST["year"]; $name = $_POST["name"]; $length = $_POST["length"]; $komment = $_POST["komment"]; $publisher = $_POST["publisher"]; $copyright = $_POST["copyright"]; $url = $_POST["url"]; $res=mysql_query("INSERT INTO audiofile (file, path, type, creation_date, 30 date_of_change, size, computer) VALUE ('$file', '$path', '$type', '$create_date', '$date_of_change', '$size', '$comp')", $db); if (!$res) { echo 'Запрос не удался. Код ошибки - '; exit(mysql_error()); } $res=mysql_query("INSERT INTO carrier(autors, album_autor, album, genre, year) VALUE ('$autors', '$album_autor', '$album', '$genre', '$year')", $db); if (!$res) { echo 'Запрос не удался. Код ошибки - '; exit(mysql_error()); } $res=mysql_query("INSERT INTO song(name, length, komment) VALUE ('$name', '$length', '$komment')", $db); if (!$res) { echo 'Запрос не удался. Код ошибки - '; exit(mysql_error()); } $res=mysql_query("INSERT INTO sourse(publisher, copyright, URL) VALUE ('$publisher', '$copyright', '$url')", $db); if (!$res) { echo 'Запрос не удался. Код ошибки - '; exit(mysql_error()); } echo '<center><h2>Информация успешно добавлена<h2><br><h3>Спасибо за пользование услугами сайта.</h3></center>'; ?></td> <?php include("blocks/right.php")?> </tr> <tr> <?php include("blocks/niz.php")?> </tr> </table> dbConnect.php <?php $user = "maga"; $connect = "localhost"; $password = "123"; $db = mysql_connect($connect,$user,$password); mysql_select_db("AUDIOTEKA",$db); ?> 31