Файл: Разработка структуры и функционала интернет-представительства компании.pdf
Добавлен: 18.06.2023
Просмотров: 58
Скачиваний: 3
Со всей доступной информацией о продуктах пользователь может познакомиться онлайн, выбрать категории продуктов.
Программное обеспечение создано на основе современных концепций программирования, что обеспечивает его гибкость, легкую настройку на изменение или дополнения структуры базы данных. Такое программное обеспечение позволит наращивать и изменять базу данных, развивать информационную систему компании с наименьшими затратами и временем на адаптацию.
Поставленная цель курсового проекта достигнута, задачи выполнены. Прототип сайта размещен в сети интернет на хостинге общего пользования по адресу:
http://www.diofant.com/Control_3K/index.php
Литература
1. Фролов А.В. Создание Веб-приложений: Практическое руководство/ А.В. Фролов, Г.В., Фролов. -М.: Издательско-торговый дом «Русская редакция», 2001.-420с.
2. Дрибас В.П. Реляционные модели баз данных/ В.П. Дрибас. -М.: Машиностроение, 2005.-340с.
3. Кормен Т. Алгоритмы: построение и анализ/ Т. Кормен ,Ч. Лейзерсон , Р. Ривест.- М.: МЦНМО, 2001.-450с.
4. Томсон Л. Разработка Веб-приложений на PHP и MySQL/ Л.Томсон, Л. Веллинг. -М.: Издательство DiaSoft, 2001.-560с.
5. Карпова Т. Базы данных. Модели, разработка, реализация/ Т. Карпова. -М.: Издательский дом «Вильямс», 2001.-300с.
6. Коннолли Т. Базы данных. Проектирование, реализация, сопровождение. Теория и практика/ Т. Коннолли, К. Бегг, Страчан А. -М.: Издательство DiaSoft, 2009.-460с.
7. Мартин Д. Базы данных. Практические методы/ Д. Мартин. -М.: Издательство «Мир», 2005.-580с.
8. Мейер Д. Теория реляционных баз данных/ Д. Мейер. -М.: Статистика, 2007.-380с.
9. Олле Т. Предложения КОДАСИЛ по управлению базами данных/ Т. Олле. -М.: Издательский дом «Вильямс», 2010.-370с.
10. Потоцкий В.К. Технология создания и управления работой реляционной базы данных на персональной ЭВМ/ В.К. Потоцкий. -М.:
11. Чудинов И.Л. Системы управления базами данных/ И.Л. Чудинов. -М.: Машиностроение, 2009.-410с.
12. Зандстра М. PHP4 за 24 часа/ М. Зандстра. -М.: Издательский дом «Вильямс», 2008.-270с.
13. Димитриева Л.Л. Методическое руководство по оформлению курсовых и дипломных проектов/ Л.Л Димитриева. - Ростов-на-Дону: РГЭУ «РИНХ», 2009.– 35 с.
14. Смирнова Г.Н. Проектирование экономических информационных систем/ Г.Н. Смирнова, Ю.Ф. Тельнов. - М.: МЭСИ, 2004. – 223 с.
15.Трофимов С.А. CASE-технологии: практическая работа в Rational Rose. Визуальное моделирование/ С.А. Трофимов. - М.: Бином-Пресс, 2002. -288с.
16.Томсон Л. Разработка Веб-приложений на РНР и MySQL/ Л. Томсон, Л. Веллинг. -Спб.: ООО «ДиаСофтЮП», 2003. – 672с.
17. Шполянская И. Ю. Проектирование информационных систем с использованием UML и Rational Rose: методические указания по изучению дисциплины для студентов заочной формы обучения/ И.Ю. Шполянская. -Ростов-на-Дону: РГЭУ «РИНХ», 2003. -45 с.
18. Фаулер М. UML. Основы/ М. Фаулер, К.Скотт. - СПб.: Символ-Плюс, 2002. – 192 с.
19. Зелинский С.Е. Автоматизация учета персонала: практическое пособие/ С.Е. Зелинский. - Киев: «Центр Учебной Литературы», 2003.-679 с.
20. Сайт разработчиков Rational Software [Электронный ресурс]. - URL: http://www-01.ibm.com/software/rational/ (дата обращения: 18.11.2010).
21. Сайт разработчиков веб-сервера Apache [Электронный ресурс]. - URL: http://httpd.apache.org/ (дата обращения: 14.05.2012).
22. Википедия Model-View-Controller [Электронный ресурс].-
URL: http://ru.wikipedia.org/wiki/Model-View-Controller (дата обращения: 10.06.2013).
Приложение
Коды программ
Header.php- код «шапки» приложения
<html>
<head>
<title>Сайт компании
</title>
<style>
a {
text-decoration: none; /* Отменяем подчеркивание у ссылки */
}
A IMG
{
border: none; /* Убираем рамку в изображениях-ссілках */
}
body
{
background: #E0FFFF; /* Цвет фона */
color: Maroon; /* Цвет текста */
}
</style>
</head>
<body>
<table bgcolor="#FFFFFF" border="0" height=5 width="99%" cellpadding="0" cellspacing="0">
<tr>
<td colspan="9">
<img src="../../Control_3K/Pictures/LogotipControl_3K.png" width="100%">
</td>
</tr>
<tr>
<td width="11%" align="center" bgcolor="blue">
<a href="../../Control_3K/index.php"><font color="Gold" size="3"><strong>ГЛАВНАЯ</strong></font></a>
</td>
<td width="11%" align="center" bgcolor="blue">
<a href="../../Control_3K/Company.php"><font color="Gold" size="3"><strong>О ПРОЕКТЕ</strong></font></a>
</td>
<td width="11%" align="center" bgcolor="blue">
<a href="../../Control_3K/News_Frame.php"><font color="Gold" size="3"> <strong>НОВОСТИ</strong></font></a>
</td>
<td width="11%" align="center" bgcolor="blue">
<a href="../../Control_3K/View_Table_Frame.php?FormType=A1_products"><font color="Gold" size="3"> <strong>ПРОДУКЦИЯ</strong></font></a>
</td>
<td width="11%" align="center" bgcolor="blue">
<a href="../../Control_3K/Shoping.php"><font color="Gold" size="3"> <strong>МАГАЗИНЫ</strong></font></a>
</td>
<td width="11%" align="center" bgcolor="blue">
<a href="../../Control_3K/Review.php"><font color="Gold" size="3"> <strong>ОТЗЫВЫ</strong></font></a>
</td>
<td width="11%" align="center" bgcolor="blue">
<a href="../../Control_3K/feedback.php"><font color="Gold" size="3"><strong>КОНТАКТЫ</strong></font></a>
</td>
<td width="11%" align="center" bgcolor="blue">
<a href="../../Control_3K/auth.php"><font color="Gold" size="3"> <strong>ВХОД</strong></font></a>
</td>
<td width="11%" align="center" bgcolor="blue">
<a href="../../Control_3K/Reg_Frame.php?FormType=1_clients"><font color="Gold" size="3"> <strong>РЕГИСТРАЦИЯ</strong></font></a>
</td>
</tr>
</table>
<table bgcolor="#999999" height=10 width="99%" cellspacing="1" cellpadding="1" border="0">
<tr>
<td align="left" valign="top" bgcolor="Gold">
</td>
</tr>
</table>
DB_Class.php - класс для работы с базой данных
<?php
class MySQL_DB
{
private $dbObj = null;
private $result = null;
/* Для конструктора - адрес, имя пользователя, пароль, имя базы данных, порт,
/*а также кодировку для соединения.
/* По умолчанию используется utf8 */
public function __construct($host, $user, $password, $base, $port = null, $charset = 'utf8')
{
$this->dbObj = new mysqli($host, $user, $password, $base, $port);
$this->dbObj->set_charset($charset);
}
/*основная и единственная функция, которая выполняет запрос и возвращает результат его работы*/
public function query($query)
{
if(!$this->dbObj)
return false;
/*очищаем предыдущий результат*/
if(is_object($this->result))
$this->result->free();
/*выполняем запрос*/
$this->result = $this->dbObj->query($query);
/*если есть ошибки - выводим их*/
if($this->dbObj->errno)
#!!!# die("mysqli error #".$this->dbObj->errno.": ".$this->dbObj->error);
return $this->dbObj->error;
/*если в результате выполнения запроса (например SELECT...) получены данные - возвращаем их.
/* данные всегда возвращаются в массиве, даже если запрос возвращает одну запись.*/
if(is_object($this->result))
{
while($row = $this->result->fetch_assoc())
$data[] = $row;
return $data;
}
/*если результат отрицательный - возвращаем false */
else if($this->result == FALSE)
return false;
/*если запрос (например UPDATE или INSERT) затронул какие-либо строки - возвращаем их количество*/
else return $this->dbObj->affected_rows;
}
}
include 'DB_data.php';
$dbObj = new MySQL_DB(DB_HOST, DB_USER, DB_PWD, DB_NAME);
include 'DB_Coding.php';
?>
Any_Table_HTML_New.php – класс представления таблиц базы данных
<?php
class Any_Table
{
var $table_array = array();
var $headers = array();
var $domns;
function Any_Table ($headers)
{
$this->headers = $headers;
$this->domns = count($headers);
}
function AddRow ($row)
{
If ( count ($row) != $this->domns)
return false;
array_push( $this -> table_array, $row);
return true;
}
function SetArr($Arr)
{
$this -> table_array = $Arr;
return true;
}
function AddRowAssArr ($row_ass)
{
$row=array();
foreach ($this -> headers as $header)
{ if (!isset($row_ass[$header]))
$row_ass[$header]='';
$row[ ]=$row_ass[$header];
}
array_push( $this -> table_array, $row);
return true;
}
function PrintArr ()
{
print "<pre>";
foreach ($this -> headers as $header)
print ' '."<strong>$header</strong>".' ';
print "\n";
foreach ($this -> table_array as $string)
{
foreach ($string as $elemnt)
print ' '."$elemnt".' ';
print "\n";
}
}
}
class HTML_Table extends Any_Table
{
var $bgcolor;
var $bgcolor_h = "#FFCCCC";
var $bgcolor_c = "#FFFFFF";
var $cellpadding = "1";
function HTML_Table($headers, $bg='#ffffff' )
{
Any_Table::Any_Table($headers);
$this->bgcolor=$bg;
}
function SetCellPadding ($padding)
{
$this -> cellpadding = $padding;
}
function PrintArr()
{
print "<table bgcolor=\"#999999\" cellspacing=\"1\" cellpadding=\"$this->cellpadding\" border=0>";
print "<tr>";
foreach ($this -> headers as $header)
print "<td align=\"center\" bgcolor=\"$this->bgcolor_h\">$header</td>";
print "</tr>";
foreach ($this -> table_array as $row=>$cells)
{
print "<tr>";
foreach ($cells as $elemnt)
print "<td align='center' bgcolor=\"$this->bgcolor_c\" >$elemnt</td>";
print "</tr>";
}
print '</table>';
}
function OutForm($handler)
{
$width_h = array(170, 360);
print "<form name='uniform' action='".$handler.".php' method=post>";
print "<table bgcolor=\"#999999\" cellspacing=\"1\" cellpadding=\"$this->cellpadding\" border=0>";
print "<tr>";
$i=0;
foreach ($this -> headers as $header){
print "<td width='".$width_h[$i]."' align=\"left\" bgcolor=\"$this->bgcolor_h\"> $header</td>";
$i++;
}
print "</tr>";
$i=0;
foreach ($this -> table_array as $row=>$cells)
{
print "<tr>";
foreach ($cells as $elemnt)
{
print "<td width='".$width_h[$i]."' align='left' bgcolor=\"$this->bgcolor_c\" >$elemnt</td>";
if ($i==0) $i++; else $i--;
}
print "</tr>";
}
print '</table>';
print '</form>';
}
}
?>
All_Tables.php – формирует веб-представление всех таблиц базы данных.
<?php
##################################################################
# Модуль выводит на экран содержимое базы данных' по-таблично.
# Полностью все данные не выводятся на экран, а только первые строки
##################################################################
#
require_once 'FormTypes.php';
$Arr_acc = array();
$Row = array();
$dbtable = $FormTypes;
//$head_color = 'silver';
# Класс для построения таблиц по заголовкам и содержанию таблиц
require_once 'Any_Table_HTML_New.php';
# Класс для работы с базой данных MySQL, описание в теле модуля
require_once 'DB_Class.php';
# Объект класса работы с базой данных создается внутри модуля DB_Class.php
# $dbObj = new MySQL_DB(DB_HOST, DB_USER, DB_PWD, DB_NAME);
###
# Так мы делаем софт более независимым от конкретных таблиц БД
#
# Заголовки всех таблиц веб проекта, которые появляются на экране
require_once 'Table_Headers.php';
#
# Заголовки всех таблиц БД проекта, на английском
require_once 'Table_Headers_DB.php';
#
require_once 'Header.php'; // заголовок для страниц проекта
require_once 'FormMsgs.php'; // все сообщения программ проекта
#
#
$f=0; // номер элемента $FormType
foreach ($dbtable as $value) {
#
$headers = $Table_Headers [$FormTypes[$f]];// наименования столбцов таблицe
$headers_db = $Table_Headers_DB[$FormTypes[$f]];// наименования доменов в таблице
# // БД и <input name's в формах
###
# Создаем объекты класса для вывода таблиц, вызываем конструктор
# $handler = $FormType.'_Handler'; // обработчик настоящей формы
$Table_view = new HTML_Table($headers , $heard_color);
#
#запрос на выдачу всей таблицы
$QueryResult = $dbObj->query("SELECT * FROM $dbtable[$f] LIMIT 0,2");
# возвращает массив ассоциативных массивов (см. класс DB_Class.php)
# по сути двумерный массив, поэтому используем конструкцию foreach
# это можно увидеть убрав знак # перед print см. ниже. Таким образом
# формируются массивы для вывода на экран для каждой таблицы
#
if ($QueryResult==false)
{
$msg = 'Нет записей в базе данных!';
}
else
{
$NA = count($QueryResult);
//print '$NA='.$NA;
//print '<pre>'; print_r($QueryResult); print '</pre>';
}
foreach ($QueryResult as $row => $Arr_acc)
{
$i=0;
foreach ($headers_db as $element)
{
$Row = array_merge($Row, array($headers[$i] => $Arr_acc[$headers_db[$i]]) );
$i++;
}
$Table_view -> AddRowAssArr($Row);
}
print "<p></p><font color= \"blue\" ><strong>$All_Tables_Names[$f]</strong></font>"
."$Comment_to_Table_up[$f]";
$Table_view -> PrintArr();
print "<a href=\"Tables_Handler.php?FormType=$FormTypes[$f]\">
Все данные Таблицы \"$All_Tables_Names[$f]\"</a>"
.'<p></p>';
//print "<a href=\"$FormType[$f]_Handler.php?FormType=$FormType[$f]\">
// Все данные Таблицы \"$All_Tables_Names[$f]\"</a>"
#
$f++; // новое значение $FormType, новая таблица
}
#
include 'Footer.php'; // стандартная нижняя строка каждой страницы
#
?>
DB_Tables_Fields.php
<?php
##########################################################
# Пример использования SHOW COLUMNS и SHOW COLUMNS #
##########################################################
#
require_once 'DB_Class.php';
$Arr_acc_tables = array();
$Arr_acc_fields = array();
$Tables = array();
$Fields = array();
$Fields_1 = array();
$Work = array();
$Table_Headers_DB = array();
$SQL_String1 = array();
$SQL_String2 = array();
#
$Tables_DB_Name = 'Tables_in_'.DB_NAME;
#
$QueryResult = $dbObj->query("SHOW TABLES");
# ассоциированный массив с именами таблиц
# Array
# (
# [0] => Array
# (
# [Tables_in_control_clients_adv] => Clients
# )
#...
#
# print '<pre>';
# print_r($QueryResult);
# print '</pre>';
#
$i=0;
foreach ($QueryResult as $row_tables => $Arr_acc_tables)
{
$Tables[$i] = $Arr_acc_tables[$Tables_DB_Name];
$QueryResult = $dbObj->query("SHOW COLUMNS FROM $Tables[$i]");
#
#
#
# Array
# (
# [0] => Array
# (
# [Field] => Id_Client
# [Type] => char(10)
# [Null] => NO
# [Key] => PRI
# [Default] =>
# [Extra] =>
# )
$j=0;
$string ='';
$string1='';
$string2='';
foreach ($QueryResult as $row_fields => $Arr_acc_fields)
{
$Fields[$i][$j] = $Arr_acc_fields[Field];
$Fields_1 [$j] = $Arr_acc_fields[Field];
$string.= ',' .$Fields[$i][$j];
$string1.="," .$Fields[$i][$j];
$string2.=",$".$Fields[$i][$j];
$j++;
}
// print '<br>'.$Tables[$i].$string;
// print '<br>'.$Tables[$i].$string1;
// print '<br>'.$Tables[$i].$string2;
// print '<pre>';
// print_r($QueryResult);
// print '</pre>';
$string1 = substr($string1,1);
$string2 = substr($string2,1);
$Table_Headers_DB = array_merge($Table_Headers_DB,array($Tables[$i] => $Fields_1));
$SQL_String1 = array_merge($SQL_String1 ,array($Tables[$i] => $string1 ));
$SQL_String2 = array_merge($SQL_String2 ,array($Tables[$i] => $string2 ));
$Fields_1 = $Work;
$i++;
}
$FormTypes=$Tables;
### Эту часть только при первом запуске, пока не созданы заголовки Table_Headers.php