Автор работы: Пользователь скрыл имя, 22 Января 2012 в 14:31, курсовая работа
Требования к разрабатываемой системе:
Должен быть интерфейс для клиента и администратора
Интерфейс должен быть максимально простым и функциональным
Интерфейс клиента предназначен для проведения покупки или заказа билетов
Интерфейс администратора предназначен для просмотра и редактирования всех данных «Системы продажи билетов в кинотеатре»
Все данные должны храниться в удаленной базе данных
Далее строчками:
for ($i=0; $i <$num_results;
$i++)
{
$row = mysql_fetch_row($result);
if (($i%10==0))
{
if ($a==0)
{ echo "<tr>";
$b=($i / 10)+1;
echo "<td >$b-ый ряд</td>";
$a=1; }
else
{ echo "</tr><br/><tr>";
$b=($i / 10)+1;
echo "<td >$b-ый ряд</td>";
}
}
if (! htmlspecialchars(stripslashes(
{
echo '<td bgcolor="#00ff00" align="center">';
echo '№ '.htmlspecialchars(
echo htmlspecialchars(stripslashes(
}
else
{
echo '<td bgcolor="#FFFFFF" align="center">';
echo '№ '.htmlspecialchars(
}
echo "</td>";
}
echo "</tr></table>";
Если на данный SQL запрос были найдены записи, то переменная «num_results» будет больше нуля. И с помощью функции «mysql_fetch_row», извлекаются записи из возвратившегося ответа. Далее формируется таблица, содержимое которой визуализует данные в базе данных. Зал состоит из 10 мест в одном ряду. Для отображения реального размещения мест в кинотеатре, необходимо чтобы таблица мест была двумерной и отражала номера рядов и положение мест в рядах. Каждое место имеет свою цену. В порядке обхода всех записей полученных от сервера. Проверяется деление на цело на 10 порядковый номер места, для определения, не начался ли новый ряд. В первой ячейке ряда выводится номер ряда. В остальных ячейках выводится информация о номере места и его цене. Если место свободно, то соответствующая ячейка в рисуемой таблице, будет окрашена в зеленый цвет и будет выведена информация в этой ячейке, о номере места и его цене. Если место занято, то соответствующая ячейка будет окрашена в белый цвет, и будет написан лишь номер места.
Далее для определения списка свободных мест и формирования наиболее удобного пользовательского интерфейса.
Строчками:
$query_place = "select
DISTINCT id_place from places where id_day =$film_data_int and id_seanse_num=$seanse_num
and ordered=0 order by id_place";
$result_place = mysql_query($query_place);
$num_results_place = mysql_num_rows($result_place);
В переменной
«query_place» формируется SQL запрос к таблице
«places». Результатом данного запроса будет
список свободных мест. Т.е. это записи
таблицы «places». У которых «id_day» равен выбранному
дню, id_seanse_num равен выбранному номеру сеанса
в выбранный день и поле «ordered» равное
«0». Далее запрос отсылается на MySQL сервер,
а получаемый ответ обрабатывается строчками
формирования структуры тега «select» следующими
строчками:
if ($num_results_place>0)
{
echo '<form action="order.php" method="post">';
echo '<INPUT TYPE=HIDDEN name="film_data"'."value=$
echo '<INPUT TYPE=HIDDEN name="seanse_num"'."value=$
echo 'Выберите номер места:<br />
<select name="id_place">';
for ($i=0; $i <$num_results_place; $i++)
{
$row_place = mysql_fetch_row($result_place)
$b=htmlspecialchars(
echo '<option value ='.$b.">$b";
}
echo '</select><br />
Ваше ФИО:<br />
<input name="client_name" type="text">
<br />
<input type="submit" value="Заказать">
</form>';
echo '<a href="index.php"><p align="center"
>Перейти на главную страницу</p></a>';
}
Если переменная «num_results_places» больше нуля, что соответствует свободным места в выбранный день и выбранный сеанс. То по этим полученным данным формируется тег «select», значения которого будет номера свободных мест. Тег «select» используется для облегчения интерфейса посетителя и предотвращения ошибок ввода со стороны посетителя.
Если все места заняты, то пользователю будет выведено сообщение:
«Все места заняты. Дождитесь следующего сеанса»
Вы
заказали:
Дата: 2004-12-21 Фильм: Romeo + Juilet № сеанса: 2 Время: 12:00:00 - 13:40:00 № места: 1 Приятного просмотра. Перейти на главную страницу |
Пример страницы «order.php».
На этой странице выводится информация о произведенном заказе:
Вводя желаемые данные и нажимая на кнопку «Заказать», посетитель переходит к файлу «order.php».
Опишем, как происходит вывод данной формы.
Вначале, с помощью функций «echo», формируются статичные надписи приветствия.
Далее строчками:
@ $db = mysql_pconnect('localhost',
'root', 'root');
if (!$db)
{
echo 'Ошибка: Не удалось установить соединение
с базой данных. Пожалуйста, повторите
попытку позже.';
exit;
}
mysql_select_db('movie');
Мы подключаемся к удаленной базе данных, расположенной на хосте «localhost». Подключаемся к базе данных под пользователем «root» с паролем «root». Далее проверяем, удалось или не удалось соединиться с базой. Если не удалось, то выводим сообщение об ошибке. Иначе все хорошо и выбираем текущую базу «movie».
Далее строчками:
$query = "select id_place
from places where id_day =$film_data_int and id_seanse_num=$seanse_num
and id_place=$id_place and ordered=0 order by id_place";
$result = mysql_query($query);
$num_results = mysql_num_rows($result);
В переменную «query», формируется SQL запрос, с помощью которого будут получена запись поля, у которой значение полей id_day равно выбранному дню, id_seanse_num равно выбранному сеансу в выбранный день, id_place равно выбранному месту и поле «ordered» равно «0». Если от сервера вернется запись базы данных, то это означает, что в выбранный день и сеанс, данное выбранное место свободно и его можно занять посетителем.
Далее строчками:
$query_time = "select
seanse.time_start, seanse.time_end from seanse where seanse.id_seanse_num=$seanse_
$result_time = mysql_query($query_time);
$num_results_time = mysql_num_rows($result_time);
if ($num_results_time>0)
{
$row=mysql_fetch_row($result_
$time_start=htmlspecialchars(
$time_end=htmlspecialchars(
}
Формируем
в переменную «query_time» SQL запрос, ответом
на который будут поля времени начала
и конца выбранного сеанса из таблицы
«seanse». Если такая запись найдена, то в
переменные «time_start», «time_end» будет записано
время начала и конца сеанса.
Далее строчками:
$query_name = "select
DISTINCT films.name from month, films, seanse where month.id_day =$film_data_int
and month.id_film=films.id_film and month.id_seanse_num=$seanse_
$result_name = mysql_query($query_name);
$num_results_name = mysql_num_rows($result_name);
if ($num_results_name>0)
{
$row=mysql_fetch_row($result_
$film_name=htmlspecialchars(
}
Формируем в переменную «query_name» SQL запрос, ответом на который будут имя выбранного фильма из таблицы «films».
Далее строчками:
$query = "insert into
orders values
('NULL', '".$client_name."', '".$film_data_int."',
'".$seanse_num."', '".$id_place."', '".$client_date."',
'".$client_time."')";
$result = mysql_query($query);
Формируется SQL запрос на добавление записи в таблицу «orders», добавляемая запись будет содержать ФИО посетителя, день фильма, номер сеанса, номер места, дата и время заказа.
Далее строчками:
$query_update = "update
places set ordered=1 where id_day=$film_data_int and id_seanse_num=$seanse_num
and id_place=$id_place";
$result2 = mysql_query($query_update);
Формируется SQL запрос, результатом которого будет обновление записи в таблице «places». Запись, у которой поля «id_day» равны выбранной дате, id_seanse_num равна номеру выбранного сеанса, «id_place» равное выбранному месту. У данной выбранной записи будет изменено поле «ordered» на значение «1».
Далее строчками:
if ($result &&
$result2)
{
echo '<p class="style2">Вы заказали:</p>';
echo '<p class="style1">Дата: '.$film_data.'</p>';
echo '<p class="style1">Фильм: '.$film_name.'</p>';
echo '<p class="style1">№ сеанса: '.$seanse_num.'</p>';
echo '<p class="style1">Время: '.$time_start.'
- '.$time_end.'</p>';
echo '<p class="style1">№ места: '.$id_place.'</p>';
echo '<p class="style2" align="center">Приятного
просмотра.</p></br>';
echo '<a href="index.php"><p align="center"
>Перейти на главную страницу</p></a>';
}
Проверяем, если все SQL запросы вернули положительный результат, что означает, что все нужные записи добавлен и обновлены, пользователю выводятся данные о заказе.
Если возникла ошибка при заказе места, то пользователю будет выведено сообщение:
«Ошибка: попробуйте ещё раз»
Интерфейс администратора.
При входе на сайт, администратор вызывает страницу «admin.html».
На этой странице выводится:
Вводя логин и пароль, администратор переходит к файлу «admin.php».
Вот пример содержания этой страницы:
Пример страницы «admin.php».
На этой странице выводится:
Выбирая таблицу, администратор переходит к файлу «tables.php».
Вот пример содержания этой страницы:
Пример страницы «tables.php».
На данном примере показано содержание таблицы «month».
Опишем, как происходит вывод данной формы.
Вначале, с помощью функций «echo», формируются статичные надписи приветствия.
Далее строчками:
@
$db = mysql_pconnect('localhost', 'root', 'root');
if (!$db)
{
echo 'Ошибка: Не удалось установить соединение
с базой данных. Пожалуйста, повторите
попытку позже.';
exit;
}
mysql_select_db('movie');
Мы подключаемся к удаленной базе данных, расположенной на хосте «localhost». Подключаемся к базе данных под пользователем «root» с паролем «root». Далее проверяем, удалось или не удалось соединиться с базой. Если не удалось, то выводим сообщение об ошибке. Иначе все хорошо и выбираем текущую базу «movie».
Далее строчками:
$query_day = "select
DISTINCT id_day from month order by id_day";
$result_day = mysql_query($query_day);
$num_results_day = mysql_num_rows($result_day);
В переменную «query», формируется SQL запрос, с помощью которого будут получены записи все даты из таблицы «month» для формирования тега выбора даты «select».
Если даты найдены, то значение переменной num_results_day больше нуля. Если это так, то формируем тег «select» для выбора даты следующими строчками:
echo '<form action="tables.php"
method="post">
<INPUT TYPE=HIDDEN name="login" value='.$login.'>
<INPUT TYPE=HIDDEN name="pwd" value='.$pwd.'>
<input type=HIDDEN name="table"'." value=$table>";
echo 'Выберите дату:';
echo '<table border=1 cellspacing=1 cellpadding=10><tr><td>
<select name="id_day">';
for ($i=0; $i <$num_results_day; $i++)
{
$row_day = mysql_fetch_row($result_day);
$b=htmlspecialchars(
echo '<option value ='.$b.">$b";
}
echo '<option value ="">Все';
echo '</select></td><td>';
echo '<input type="submit" value="OK"></td></tr></table>
</form>';
Здесь извлекаются значения, из возвратившегося запросы, и формируются соответствующий «html» код.