- •Министерство образования и науки республики казахстан Университет «туран»
- •Дипломный проект
- •Задание на дипломный проект
- •Руководитель: ________ Ахметжанова ж.Б.
- •Содержание:
- •Глава 1. Обоснование потребности в Web-сайте……….……..……………………... 6
- •Глава 2. Разработка и создание Web-сайта……………....…………………………… 24
- •Глава 3. Технико-экономическое обоснование……………………………...………. 66
- •Глава 4. Охрана труда и безопасность жизнедеятельности……………………….. 73
- •Введение
- •Цели и поставленные задачи дипломного проекта
- •Глава 1. Обоснование потребности в Web-сайте
- •1.1 Web-сайт, общие понятия.
- •1.1.1 Классификация Web-сайтов
- •1.1.2 Проектирование и разработка Web-сайта
- •1 Этап — определение целей создания сайта
- •2 Этап — проведение исследований по теме
- •3 Этап — определение типа сайта, разработка тз и структуры
- •4 Этап — разработка макета дизайна сайта
- •5 Этап — html-css вёрстка
- •6 Этап — программирование и установка на cms
- •1.2 Разработка базы данных MySql
- •1.2.1 Связь с базами данных MySql
- •1.2.2 Хранение данных в реляционных базах данных
- •1.3 Разработка административной части сайта
- •1.4 Язык php
- •1.4.1 Общие правила построения php-программы
- •Переменные
- •1.4.2 Связь php с базой данных MySql
- •1.5 Основы css
- •Свойства шрифта
- •Глава 2 Разработка и создание Web-сайта «Детский Хоккейный Клуб»
- •2.1 Постановка задачи при проектировании web- сайта
- •2.2 Общая структура Web-сайта
- •Главная
- •2.2.1 Каталоги в cms Joomla V.1.5.8
- •2.2.2 Работа с базами данных в cms Joomla V.1.5.8
- •Префикс
- •Общепринятые поля таблицы
- •Поля даты
- •Многоязычные требования
- •Запрос в базу данных
- •Написание запросов
- •Получение результата
- •Использование adOdb
- •Управление зарезервированными полями
- •Publishing
- •Checking Out
- •Ordering
- •Поле параметров
- •Поля даты
- •2.3 Дизайн Web-сайта
- •2.3.1 Подробное описание разделов и подразделов
- •2.4 Администрирование
- •2.4.1 Панель администратора
- •Пиктограмма с надписью Сайт.
- •Пиктограмма Меню
- •Пиктограмма Статьи
- •Пиктограмма Компоненты
- •Пиктограмма Расширения
- •Пиктограмма Инструменты
- •2.4.2 Создание пунктов меню
- •2.4.3 Редактирование материала
- •2.4.4 Установка Шаблона Web-сайта
- •2.4.5 Вставка видео на Web-сайт
- •Вставка видео с YouTube.Com
- •2.4.6 Опрос пользователей Web-сайта
- •Глава 3. Технико-экономическое обоснование
- •3.1 Оценка общего состояния рынка веб-разработки
- •3.2 Стоимость разработки
- •Стоимость операционной системы
- •Системные требования html-редакторов
- •Минимальные требования и расходы
- •Необходимые требования и расходы
- •Оптимальный вариант для создания Web-сайта «Детский хоккейный клуб»
- •Глава 4. Нормы и требования охраны труда на рабочем месте разработчика Web-сайта
- •4.1 Общие положения
- •4.2 Требования безопасности во время эксплуатации эвм
- •4.3 Требования безопасности во время работы
- •4.4 Выводы
- •Заключение
- •Список использованной литературы
- •16. Д. Н. Колисниченко. Движок для вашего сайта. Cms Joomla!, Slaed, php Издательство: бхв-Петербург, 2008г.
- •34. Билл Скотт, Тереза Нейл. Проектирование веб-интерфейсов. 2010г.
- •Приложения
Поля даты
Очень часто используется поле типа datetime, хранящее дату и время некоторого события. Когда мы используем это поле, очень важно знать про эффект временных зон. Все даты и время должны быть сохранены в нулевом поясе UTC+0 (GMT / Z). А уже при выводе на экран используем класс JDate.
Многоязычные требования
В кодировке UTF-8 колличество бит на символ от 8 и более. К сожалению в MySql версиях до 4.1.2, один символ всегда занимает один байт, что вызывает некоторые проблемы. Единственное решение - это создать различные файлы sql запросов для различных версий MySql-серверов, поддерживающих и не поддерживающих кодировку UTF-8. Для MySql не поддерживающих данную кодировку мы должны задать увеличенный размер полей. Например для поля varchar(20) лучше задать размер varchar(60). Размер поля увеличен в три раза, потому что большинство символов в кодировке UTF-8 занимают максимум 3 байта. Но например поле varchar(100) мы должны были бы увеличить в три раза и получить varchar(300). Но это невозможно, так как максимальный размер - varchar(255). Единственный выход - это задать тип TEXT. Для примера, ядро Joomla содержит таблицу #__content, хранящее поле title. Для MySql поддерживающих UTF-8 поле определяется как
'title' varchar(255) NOT NULL default ''
а для неподдерживающих
'title' text NOT NULL default ''
Запрос в базу данных
Когда мы выполняем запрос, мы передаем сам запрос в глобальный объект JDatabase. Мы должны использовать метод setQuery() для установки запроса, но запомните - он не выполняет сам запрос.
$db =& JFactory::getDBO();
$result = $db->setQuery($query);
Когда запрос установлен, нужно использовать метод query(), чтобы выполнить его. Этот метод аналогичен PHP функции mysql_query(). Если запрос правильный и содержит команды SELECT, SHOW, DESCRIBE, или EXPLAIN, то он вернет результат.
if (!$result = $db->query($query))
{
// отлавливаем ошибки
// используйте $db->getError() для большей информации
}
Написание запросов
Вот несколько правил при написании запросов к базе данных.
Используйте префикс #__ вначале всех имен таблиц.
Используйте метод nameQuote() для формирования названных элементов в запросе.
Используйте метод Quote() для формирования значений.
nameQuote() - устанавливает правильность разделителей в имени поля, а Quote() - устанавливает правильность разделителей в передаваемом значении. Например:
$db = JFactory::getDBO();
$query = 'SELECT * FROM '
.$db->nameQuote('#__test')
.' WHERE '
.$db->nameQuote('name')
.' = '
.$db->Quote('Some Name');
Если мы использовали MySQL или MySQLi драйвер, то запрос в итоге будет выглядеть следующим образом:
SELECT * FROM 'jos_test' WHERE 'name' = "Some Name";
Получение результата
Мы можем использовать метод query() для получения результата. Но чаще нам приходится пользоваться другими методами класса JDatabase, для получения результата в различных форматах. Для показа работы методов мы будем использовать таблицу #__test. Эта таблица содержит два поля: id и name. В таблице имеются две записи:
id |
name |
1 |
Foo |
2 |
Bar |
Далее в примерах мы не будем применять методы nameQuote() и Quote(). loadResult( ) : string Метод загружает значение первой ячейки результата.
$query = 'SELECT 'name' FROM '#__test' WHERE 'id'=2';
$db =& JFactory::getDBO();
$db->setQuery($query);
echo $db->loadResult();
Результат: Bar loadResultArray( numinarray : int=0 ) : array Метод загружает столбец с номером numarray, обозначающим его логическую позицию, в виде массива.
$query = 'SELECT 'name' FROM '#__test'';
$db =& JFactory::getDBO();
$db->setQuery($query);
print_r($db->loadResultArray());
Результат: Array ( [0] => Foo [1] => Bar ) loadAssoc( ) : array Метод загружает первую запись результата в виде ассоциативного массива.
$query = 'SELECT * FROM '#__test'';
$db =& JFactory::getDBO();
$db->setQuery($query);
print_r($db->loadAssoc());
Результат: Array ( [id] => 1 [name] => Foo ) loadAssocList( key : string='' ) : array Метод загружает результат в виде массива ассоциативных массивов. Если мы укажем необязательный параметр key, то будет получен массив ассоциативных массивов с единственным полем key.
$query = 'SELECT * FROM '#__test'';
$db =& JFactory::getDBO();
$db->setQuery($query);
print_r($db->loadAssocList());
Результат:
Array
(
[0] => Array
(
[id] => 1
[name] => Foo
)
[1] => Array
(
[id] => 2
[name] => Bar
)
)
loadObject( ) : stdClass Этот метод загружает первую запись в виде объекта.
$query = 'SELECT * FROM '#__test'';
$db =& JFactory::getDBO();
$db->setQuery($query);
print_r($db->loadObject());
stdClass Object
(
[id] => 1
[name] => Foo
)
loadObjectList( key : string='' ) : array Этот метод загружает результат в виде массива обьектов класса stdClass. Если есть параметр key, то будет загружен массив объектов с единственным свойством key.
$query = 'SELECT * FROM '#__test'';
$db =& JFactory::getDBO();
$db->setQuery($query);
print_r($db->loadObjectList());
Array
(
[0] => stdClass Object
(
[id] => 1
[name] => Foo
)
[1] => stdClass Object
(
[id] => 2
[name] => Bar
)
)
loadRow( ) : array Метод загружает первую запись результата в виде массива.
$query = 'SELECT * FROM '#__test'';
$db =& JFactory::getDBO();
$db->setQuery($query);
print_r($db->loadRow());
Array
(
[0] => 1
[1] => Foo
)
loadRowList( key : int ) : array Метод загружает массив массивов.
$query = 'SELECT * FROM '#__test';
$db =& JFactory::getDBO();
$db->setQuery($query);
print_r($db->loadRowList(0));
Array
(
[0] => Array
(
[0] => 1
[1] => Foo
)
[1] => Array
(
[0] => 2
[1] => Bar
)
)