Система продажи билетов в кинотеатре

Автор работы: Пользователь скрыл имя, 22 Января 2012 в 14:31, курсовая работа

Краткое описание

Требования к разрабатываемой системе:
Должен быть интерфейс для клиента и администратора
Интерфейс должен быть максимально простым и функциональным
Интерфейс клиента предназначен для проведения покупки или заказа билетов
Интерфейс администратора предназначен для просмотра и редактирования всех данных «Системы продажи билетов в кинотеатре»
Все данные должны храниться в удаленной базе данных

Содержимое работы - 1 файл

Курсовая(Inet).doc

— 646.00 Кб (Скачать файл)
 

   Далее строчками:

 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($row[2]))) 
  { 
echo '<td bgcolor="#00ff00" align="center">'; 
  echo '№ '.htmlspecialchars(stripslashes($row[0])).'<br/>'
  echo htmlspecialchars(stripslashes($row[1])).'<br/>'; 
  } 
  else 
  { 
echo '<td bgcolor="#FFFFFF" align="center">'; 
  echo '№ '.htmlspecialchars(stripslashes($row[0])).'<br/>'
  } 
  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=$film_data>"; 
echo '<INPUT TYPE=HIDDEN name="seanse_num"'."value=$seanse_num>"; 
echo 'Выберите номер места:<br /> 
<select name="id_place">'; 
    
  for ($i=0; $i <$num_results_place; $i++) 

$row_place = mysql_fetch_row($result_place)
  $b=htmlspecialchars(stripslashes($row_place[0])); 
  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_num"; 
$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); 
$time_start=htmlspecialchars(stripslashes($row[0])); 
$time_end=htmlspecialchars(stripslashes($row[1])); 
}

          
  
Формируем в переменную «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_num"; 
$result_name = mysql_query($query_name); 
$num_results_name = mysql_num_rows($result_name); 
if ($num_results_name>0) 

$row=mysql_fetch_row($result_name); 
  $film_name=htmlspecialchars(stripslashes($row[0])); 
}

   Формируем в переменную «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(stripslashes($row_day[0])); 
  echo '<option value ='.$b.">$b"; 

echo '<option value ="">Все'; 
echo '</select></td><td>'; 
  echo '<input type="submit" value="OK"></td></tr></table> 
</form>'; 

   Здесь извлекаются значения, из возвратившегося  запросы, и формируются соответствующий  «html» код.

Информация о работе Система продажи билетов в кинотеатре