Разработка систем управления базой данных MySQL
СОДЕРЖАНИЕ: Министерство образования Российской Федерации Выксунский металлургический техникум им.А.А.Козерадского Разработка систем управления базой данных MySQLМинистерство образования Российской Федерации
Выксунский металлургический техникум им.А.А.Козерадского
Разработка систем управления базой данных MySQL
Отчет по практике
ОП 230103.012.002.00
Руководитель проекта
Чалышев В.В.
Проект разработал
Короткова Ю.С.
Проверил
Пантелеев С.В.
г.Выкса
2007
Содержание
Аннотация
Введение
1 Анализ технического задания
2 Разработка алгоритма
3 Разработка программы
4 Блок-схема
5 Руководство по установке и использованию
Заключение
Список используемой литературы
Аннотация
Данная пояснительная записка рассказывает о разработке системы управления базой данных MySQL, цели ее создания и способах использования. Прочитав данную пояснительную записку, пользователь сможет создать свою базу данных, и, соответственно, сможет ей управлять, приложив при этом минимальные усилия.
Введение
PHP – язык написания сценариев, внедренный в HTML. Многое из синтаксиса заимствовано из С, Java, Perl, с добавлением специфичных для PHP возможностей. Задача языка состоит в том, чтобы дать возможность Web-разработчикам легко и быстро создавать динамично изменяемые html-страницы.
Написание Web-страницы, работающей с базой данных, невероятно проста. В настоящее время поддерживаются следующие базы данных: Oracle, Adabas D, Sybase, FilePro, mSQL, Velocis, MySQL, Informix, Solid, dBase, ODBC, Unix dbm, PostgreSQL.
В последнее время у разработчиков наиболее популярна СУБД MySQL.
MySQL – компактный многопоточный сервер баз данных. MySQL характеризуется большой скоростью, устойчивостью и легкостью в использовании.
MySQL является идеальным решением для малых и средних приложений. Исходники сервера компилируются на множестве платформ. Наиболее полно возможности сервера проявляются на Unix-серверах, где есть поддержка многопоточности, что дает значительный прирост производительности.
MySQL действительно очень быстрый сервер, но для достижения этого разработчикам пришлось пожертвовать некоторыми требованиями к реляционным СУБД.
В своей работе я отразила, как управлять базой данных MySQL через язык программирования PHP 4.
1 Анализ технического задания
Тема проекта «Разработка систем управления базой данных MySQL» подразумевает под собой создание скрипта на языке программирования php4, где управление базой данных организовано по схеме ничего лишнего, поэтому и отсутствуют некоторые функции, которыми оснащены база данных MySQL.
Суть программы будет заключаться в следующем: пользователь создает некую базу данных, и при использовании скрипта он может выполнять следующие функции:
- просмотр созданной базы данных;
- изменение значения в строках таблицы;
- добавление строки в уже существующую таблицу, либо добавление новой таблицы;
- удаление таблицы;
Также в скрипт включен файл конфигурации, где можно ввести уникальное имя пользователя и защитить базу данных паролем.
Для реализации данного проекта применяется язык программирования PHP (версии 4.0).
2 Разработка алгоритма
На данном этапе разработано несколько алгоритмов, по которым можно решить эту задачу.
1) Разработать систему управления базой данных таким образом, чтобы она выполняла 4 основные функции: просмотр, изменение данных в таблицах, добавление таблиц и их удаление.
2) Второй вариант является модификацией первого. К уже существующей системе добавить защиту базы данных, т.е. ввести пароль для каждого пользователя.
3) Третий вариант является доработкой второго. Если пользователь захочет распечатать базу данных, то возможен вывод документа на печать.
Был выбран третий вариант реализации программы, потому что он более полный и обладает всеми важными функциями управления базой данных. Он также является наиболее практичным и работоспособным.
3 Разработка программы
В программе используется 6 файлов.
Файл index.html – начальный файл, он используется при запуске.
?php
include(inc/config.php);
include(inc/function.php);
include(inc/header.php);
print div align=\center\ class=\tabtop\Пример системы управления базой данных/div;
list_tab(connect);
if(@$action == connect){
$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);
mysql_select_db ($database) or die ($database не найдена!);
$result = mysql_query (SELECT * FROM `$db`) or die (Ошибка запроса);
if ($myrow = mysql_fetch_array($result))
{
echo table bgcolor=\#F3E7CD\ tr class=\tabletext\td;
echo table width=\100%\ rules=\all\ align=\center\ bgcolor=\#ffffff\ bolder=\4\\n;
echo tr
td Н а з в а н и е /td
td И з д а т е л ь с т в о /td
td Г о д в ы п у с к а /td
/tr\n;
do
{
print tr bgcolor=\#111111\
td align=\CENTER\ class=\taband\$myrow[nazvanie]/td
td align=\CENTER\ class=\taband\$myrow[izdatelstvo]/td
td align=\CENTER\ class=\taband\$myrow[god_vipuska]/td/tr
; }
while ($myrow = mysql_fetch_array($result));
echo /table\n;
echo /td/tr/table;}
print a target=\blank\ href=\/services/print.php?db=$db\Версия для печати/a;
}?
Файл admin. php -в этом файле производится непосредственно обработка информации из базы данных, выполнение всех основных команд управления базой данных.
?php
include(inc/config.php);
include(inc/function.php);
include(inc/header.php);
switch (@$actions) {
case (add):
print div align=\center\ class=\tabtop\Добавить строку в таблицу/div;
list_tab(add);
print hr;
print div align=\center\ class=\tabtop\Создать новую таблицу/div;
print form action=\?actions=adds=2\ method=\post\
table
tr class=\tabletext\tdИмя таблицы (соответственно имени группы):/tdtdinput type=\text\ name=\tablename\/td/tr
trtd colspan=\2\ align=\CENTER\input type=\submit\ value=\Создать таблицу\/td/tr
/table
/form;
if (isset($tablename) @$s==2) {
$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);
mysql_select_db ($database) or die ($database не найдена!);
$sql = CREATE TABLE `.$tablename.` (
. `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
. `nazvanie` VARCHAR(100) NOT NULL,
. `izdatelstvo` VARCHAR(100) NOT NULL,
. `god_vipuska` VARCHAR(100) NOT NULL,
. PRIMARY KEY (`id`)
. );
$result = mysql_query($sql);
print meta http-equiv=\refresh\ content=\2 url=?action=adddb=$tablename\;
}
if (isset($snazvanie) @$s==1) {
$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);
mysql_select_db ($database) or die ($database не найдена!);
$sql = INSERT INTO `$db` (nazvanie,izdatelstvo,god_vipuska) VALUES
($snazvanie,$sizdatelstvo,$sgod_vipuska);
$result = mysql_query($sql);
}
break;
case (edit):
print div align=\center\ class=\tabtop\Изменить данные таблицы/div;
list_tab(update);
break;
case (del):
print div align=\center\ class=\tabtop\Удалить таблицу/div;
list_tab(delete);
break;
case (config):
print div align=\center\ class=\tabtop\Изменить параметры скрипта/div;
form action=\\ method=\post\
table align=\CENTER\ width=\640\
tr class=\tabletext\tdИмя пользователя базы данных:/td
tdinput type=\text\ name=\new_mysql_login\ value=\$mysql_login\/td/tr
tr class=\tabletext\tdПароль для доступа к базе данных (по умолчанию пустой):/td
tdinput type=\text\ name=\new_mysql_password\ value=\$mysql_password\/td/tr
tr class=\tabletext\tdИмя базы данных:/td
tdinput type=\text\ name=\new_database\ value=\$database\/td/tr
tr class=\tabletext\td colspan=\2\ align=\CENTER\input type=\submit\ value=\Изменить\/td/tr
/table
/form;
if(isset($new_mysql_host) isset($new_mysql_login) isset($database))
{
$config = ?php
\$mysql_host = \.$new_mysql_host.\;
\n
\$mysql_login = \.$new_mysql_login.\;
\n
\$mysql_password = \.$new_mysql_password.\;
\n
\$database = \.$new_database.\;
?;
$fp = fopen (inc/config.php, w+);
fwrite ($fp, $config);
fclose ($fp);
print meta http-equiv=\refresh\ content=\0 url=admin.php?actions=config\;
}
break;
}
//Добавление таблицы
if (@$action == add isset($db)) {
print form action=\?actions=adds=1\ method=\post\
table
trtd colspan=\2\ class=\tabtop\ align=\CENTER\bДобавление строки в
таблицу $db/b/td/tr
tr class=\tabletext\td Название книги: /tdtdinput type=\text\
name=\snazvanie\ /tr
tr class=\tabletext\td Издательство: /tdtdinput type=\text\ name=\sizdatelstvo\ /tr
tr class=\tabletext\td Год выпуска: /tdtdinput type=\text\ name=\sgod_vipuska\ /tr
tr class=\tabletext\td colspan=\2\ align=\CENTER\input type=\submit\ value=\Добавить\/td/tr/table
input type=\hidden\ name=\db\ value=\$db\
/form; }
//Удаление таблицы
if(@$action == delete)
{
$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);
mysql_select_db ($database) or die ($database не найдена!);
@$result = mysql_query (DELETE FROM `$db`);
if ($result == TRUE){
$sql = mysql_query (DROP TABLE `$db`);
}
print meta http-equiv=\refresh\ content=\0 url=admin.php?actions=del\;
}
//Обновление данных в таблице
if(@$action == update){
$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);
mysql_select_db ($database) or die ($database не найдена!);
$result = mysql_query(SELECT * FROM `$db`) or die (Ошибка запроса!!!);
$myrow = mysql_fetch_array($result);
echo div align=\center\ class=\tabtop\Внести изменения в таблицу $db/div;
echo table tr class=\tabletext\td;
echo table border=\0\ cellspacing=\1\\n form action=\?submit=Submitdb=$db\ method=\POST\;
$i=0;
do
{
tr
td$myrow[0]./tdtd
input type=\text\ size=\14\ name=\nazvanie[$i]\ value=\$myrow[nazvanie]\/td
input type=\hidden\ name=\id\ value=\$myrow[0]\ td align=\CENTER\
input type=\text\ size=\2\ name=\izdatelstvo[$i]\ value=\$myrow[izdatelstvo]\/td
td align=\CENTER\input type=\text\ size=\3\ name=\god_vipuska[$i]\ value=\$myrow[god_vipuska]\/td/tr ;
$i++;}
while ($myrow = mysql_fetch_array($result));
echo
trtd colspan=\12\ align=\center\ input type=\submit\ name=\submit\ value=\Обновить\/td/tr/form/table\n;
echo /td/tr/table;
}
if (@$submit == Обновить){
$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);
mysql_select_db ($database) or die ($database не найдена!);
$ids=$id;
do {
$id--;
$result = mysql_query(UPDATE `$db` SET nazvanie=$nazvanie[$id], izdatelstvo=$izdatelstvo[$id], god_vipuska=$god_vipuska[$id] WHERE id=$ids);
$ids--;
} while($id=1);
print meta http-equiv=\refresh\ content=\0 url=admin.php?action=updatedb=$db\;
}
include(inc/footer.php);
?
Файл konfig . php -задает основные параметры базы данных: путь к базе данных, имя пользователя базы, пароль для доступа к базе данных, и имя самой базы данных.
?php
$mysql_host = localhost;
$mysql_login = root;
$mysql_password = ;
$database = knigi;?
Файл function . php -заменяет английский алфавит, используемый в базе данных, на русский методом замены.
?
function authorization($username, $pass){
include(inc/config.php);
$out = FALSE;
if(strtolower($username) == strtolower($adminlogin) $pass == $adminpass)
{
$out = TRUE;
}
return $out;
}
function list_tab($act) {
include(inc/config.php);
function replace_ru_en($tab_rows){
$tab_rows = str_replace(a, А , $tab_rows);
$tab_rows = str_replace(b, Б , $tab_rows);
$tab_rows = str_replace(с, Ц , $tab_rows);
$tab_rows = str_replace(d, Д , $tab_rows);
$tab_rows = str_replace(e, Е , $tab_rows);
$tab_rows = str_replace(f, Ф , $tab_rows);
$tab_rows = str_replace(g, Г , $tab_rows);
$tab_rows = str_replace(h, Х , $tab_rows);
$tab_rows = str_replace(i, И , $tab_rows);
$tab_rows = str_replace(j, Ж , $tab_rows);
$tab_rows = str_replace(k, К , $tab_rows);
$tab_rows = str_replace(l, Л , $tab_rows);
$tab_rows = str_replace(m, М , $tab_rows);
$tab_rows = str_replace(n, Н , $tab_rows);
$tab_rows = str_replace(o, О , $tab_rows);
$tab_rows = str_replace(p, П , $tab_rows);
$tab_rows = str_replace(q, Ш, $tab_rows);
$tab_rows = str_replace(r, Р , $tab_rows);
$tab_rows = str_replace(s, С , $tab_rows);
$tab_rows = str_replace(t, Т , $tab_rows);
$tab_rows = str_replace(u, У , $tab_rows);
$tab_rows = str_replace(v, В , $tab_rows);
$tab_rows = str_replace(w, В , $tab_rows);
$tab_rows = str_replace(x, Х , $tab_rows);
$tab_rows = str_replace(y, У , $tab_rows);
$tab_rows = str_replace(z, З , $tab_rows);
return $tab_rows;
}
$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);
mysql_select_db ($database) or die ($database не найдена!);
$result = mysql_list_tables($database, $link); print
p align=\center\ form action=\?\ method=\get\
input type=\hidden\ name=\action\ value=\$act\
select name=\db\\n;
while($tab_rows = mysql_fetch_row($result)) {
print option value=\$tab_rows[0]\.replace_ru_en($tab_rows[0])./option\n;
}
print /select
input type=\submit\ value=\Пошел\/form/p;
}
?
Файл hearder . php – внешний вид и оформление страниц.
?
html
head
/script
titleРазработка системы управления базой данных/title
/head
link href=\style.css\ rel=\stylesheet\ type=\text/css\
body bgcolor=\recbg.jpeg\ topmargin=\10\ marginwidth=\0\ marginheight=\10\
table width=\100%\ cellspacing=\1\ cellpadding=\0\ align=\CENTER\
trtd bgcolor=\E0FFFF\
table width=\100%\ cellspacing=\5\ cellpadding=\0\
trtd
table width=\100%\ cellspacing=\0\ cellpadding=\0\
tr
td{cursor: n-resize;}
table cellspacing=\0\ cellpadding=\0\
trtd
table cellspacing=\0\ cellpadding=\5\
tr
a href=\/index.php\ class=\blink\ Просмотр /abrbr
a href=\/admin.php?actions=add\ class=\blink\ Добавить/abrbr
a href=\/admin.php?actions=edit\ class=\blink\ Изменить/abrbr
a href=\/admin.php?actions=del\ class=\blink\ Удалить/abrbr
a href=\/admin.php?actions=config\ class=\blink\ Конфиг/abrbr
/tr
td/td
/table
/td
td align=\right\ class=\tabletext\
/td
/tr
/table
/td
/tr
trtd
table width=\100%\ cellspacing=\0\ cellpadding=\5\
tr class=\intable\
td bgcolor=\#F3E7CD\ align=\center\
;
?
Файл print . php - выводит базу данных на печать.
?php
include(../inc/config.php);
include(../inc/function.php);
Error_Reporting(E_ALL ~E_NOTICE);
/head
body onload=\window.print()\
;
$link = mysql_pconnect($mysql_host, $mysql_login, $mysql_password) or die (Не могу подключиться к MySQL);
mysql_select_db ($database) or die ($database не найдена!);
@$result = mysql_query (SELECT * FROM `$db`) or die (Ошибка запроса);
if ($myrow = mysql_fetch_array($result))
{
echo table bgcolor=\#000000\ trtd;
echo table border=\1\ cellspacing=\1\\n;
echo tr bgcolor=\#99ccff\ align=\CENTER\ class=\tabletext\
td Название /td
td Издательство /td
td Год выпуска /td/tr\n;
do
{
print tr class=\tabletext\ bgcolor=\#ffffff\
td$myrow[nazvanie]/td
td align=\CENTER\$myrow[izdatelstvo]/td
td align=\CENTER\$myrow[god_vipuska]/td/tr
;
}
while ($myrow = mysql_fetch_array($result));
echo /table\n;
echo /td/tr/table;
}
print input type=\submit\ value=\Печать\ onclick=\window.print()\;
mysql_close($link);
/body
/html;
?
4 Блок-схема
5 Руководство по установке и использованию
Для того чтобы данная программа работала у Вас на компьютере необходимо установить серверное программное обеспечение (например, Денвер). Дальше все по пунктам.
1. Создаем каталог и даем ему имя (т.е. папку в папке home)
2. В каталоге создаем папку www
3. Запускаем Денвер
4. Производим проверку базы данных MySQL.
5. Открываем браузер (в нем прописываем домашний URL. Домашний URL такой: http://имя своего каталога/)
Заключение
Данный проект был реализован на языке программирования PHP, который адаптирован под Интернет. Этот проект может быть использован для встраивания в сайт. Назначение его это хранение информации в одном месте, а также упорядочивание данных одной тематики.
Список используемых источников
1) Учебник php - 2002г.
2) Самоучитель по PHP.
3) Учебник PHP4-2004г.