Базы данных

Контрольная работа

Работа с базами данных. Включение в программу файлов

Контрольные вопросы
1.Как осуществляется подключение к серверу базы данных и выбор базы данных?
2.Каким образом выполнить в PHP запрос SQL?
3.Как обработать результаты запроса SELECT ?
4.Как получить информацию о базе данных?

5.Какие команды используют для включения файлов в документ?


Задание
№ 1
Создайте файл z10-1.htm с HTML-формой, позволяющей выбрать
а) структуру (группа флажков "structure") и/или
б) содержимое (группа флажков "content")
любой таблицы базы данных study:

При нажатии кнопки "Вывести" должен вызываться скрипт z10-2.php (для передачи названий таблиц используйте метод GET):

№ 2
Скрипт z10-2.php должен быть составным, т.е. иметь вид:

Именно таким образом и происходит отделение оформления страниц сайта от обращения к СУБД и от собственно наполнения (контента) каждой страницы.
Особенно важно, чтобы для инициализации обращения к базе данных был один единственный inc-файл! Тогда, чтобы заменить логин и пароль доступа к БД (например, при смене провайдера сайта), достаточно исправить всего один файл.

№ 3
В файле z10-3.inc содержится раздел <style>, в котором заданы CSS-стили для:
  • th - шрифт Arial, размер шрифта 10pt,
  • td - шрифт Courier New, размер шрифта 12pt,
  • h4 - цвет заголовка синий, размер шрифта 14pt.
и команды </head> <body>

№ 4
В файле z10-4.inc содержатся php-команды для подключение к базе данных study.

№ 5
В файле z10-5.inc содержатся функции vid_structure() и vid_content() для отображения структуры и содержимого таблицы, выбранной в HTML-форме (имя таблицы является аргументом функций).
Перед вызовом функций обязательно проверять, заданы ли значения для переменных $structure и $content.
Функция vid_structure() отображает структуру выбранной таблицы (использовать листинг 11-6).
Функция vid_content() отображает содержимое выбранной таблицы, причем в первой строке таблицы, в каждой ячейке <th> сперва указаны русские названия для столбцов таблицы, а через <br> — собственно имена столбцов. Для этого в функции создайте ассоциативный массив $rus_name[], в котором ключами будут имена столбцов, а значениями ключей — русские названия этих столбцов (массив должен быть единый для всех 3 таблиц).
В заголовках <h4> ("Структура таблицы …" и "Содержимое таблицы …") должно подставляться название выбранной таблицы.
В конце файла z10-5.inc поставьте гиперссылку на z10-1.htm ("Возврат к выбору таблицы").

№ 6
В файле z10-6.inc содержится php-команда для отключения от базы данных.

Лабораторная работа №1

« Язык MySQL»

Конторольные вопросы
1.Назовите команды, позволяющие просматривать содержимое таблиц и получать информацию об их структуре.
2.Перечислите известные вам реляционные, булевы и специальные операторы языка MySQL.
3.Каким образом агрегатные функции применяются к группам строк?
4.Для чего служит механизм определения псевдонимов таблиц?
5.Назовите команды создания, изменения и удаления таблиц.
6.Перечислите команды изменения данных в таблицах.

Задание
В файл z1-1.txt занесите ответы на следующие вопросы:
  1. Напишите запрос, который выводит все строки из таблицы Покупателей, для которых номер продавца равен 1001.
  2. Напишите запрос, который выводит таблицу Продавцов со столбцами в следующем порядке: city, sname, snum, comm.
  3. Напишите запрос, который выводит оценку (rating), сопровождаемую именем каждого покупателя в городе San Jose.
  4. Напишите запрос, который выводит значение номера продавца всех продавцов из таблицы Заказов без каких бы то ни было повторений.
  5. Напишите запрос, который может выдать вам поля sname и city для всех продавцов в Лондоне с комиссионными строго больше 0.11
  6. Напишите запрос к таблице Покупателей, который может вывести данные обо всех покупателях с рейтингом меньше или равным 200, если они не находятся в Риме
  7. Запросите двумя способами все заказы на 3 и 5 октября 1990 г.
  8. Напишите запрос, который может вывести всех покупателей, чьи имена начинаются с буквы, попадающей в диапазон от A до G.
  9. Напишите запрос, который выберет всех продавцов, имена которых содержат букву e.
  10. Напишите запрос, который сосчитал бы сумму всех заказов на 3 октября 1990 г.
  11. Напишите запрос, который сосчитал бы сумму всех заказов для продавца с номером 1001
  12. Напишите запрос, который выбрал бы наибольший заказ для каждого продавца.
  13. Напишите запрос, который выбрал бы покупателя, чье имя является первым в алфавитном порядке среди имен, заканчивающихся на букву s.
  14. Напишите запрос, который выбрал бы средние комиссионные в каждом городе.
  15. Напишите запрос, который вывел бы для каждого заказа на 3 октября его номер, стоимость заказа в евро (1$=0.8 евро), имя продавца и размер комиссионных, полученных продавцом за этот заказ.
  16. Напишите запрос, который выводит номера заказов в возрастающем порядке, а также имена продавцов и покупателей заказов, продавец которых находится в Лондоне или Риме.
  17. Запросите имена продавцов в алфавитном порядке, суммарные значения их заказов, совершенных до 5 октября, и полученные комиссионные.
  18. Выведите номера заказов, их стоимость и имена продавцов и покупателей, если продавцы и покупатели находятся в городах, чьи названия начинаются с букв из диапазона от L до R.
  19. Запросите все пары покупателей, обслуживаемые одним и тем же продавцом. Исключите комбинации покупателей с самими собой, а также пары в обратном порядке.
  20. С помощью подзапроса выведите имена всех покупателей, чьи продавцы имеют комиссионные меньше 0.13.
  21. Напишите команду, создающую копию таблицы Продавцов с одновременным копированием данных из SAMPLE.SAL. Убедитесь в сходности структур таблиц при помощи команды DESC и идентичности данных в таблице-оригинале и таблице-копии.
  22. Напишите последовательность команд, которая вставляет две новые записи в вашу таблицу Продавцов, выводит таблицу после вставки, удаляет одну запись о новом продавце и вновь выводит таблицу.
  23. Напишите последовательность команд, которая вставляет две строки в вашу таблицу Продавцов, увеличивает в 2 раза комиссионные у всех продавцов и выводит содержимое таблицы после каждого изменения.

Лабораторная работа №2

«Основные конструкции языка PHP»

Конторольные вопросы
1.Каким образом вставить РНР-команды в HTML-программу?
2.Для чего используются динамические переменные и ссылки на переменные?
3.Каким образом можно изменить или преобразовать тип переменной?
4.Назовите операторы, предназначенные для работы со строковыми переменными.
5.В чем заключается разница между циклами while, do..while и for ?
6.Как можно прервать цикл или пропустить текущую итерацию?
7.Опишите разные способы передачи аргументов внутрь функции, объяснив их различие.
8.Что такое функции-переменные?
9.Назовите особенности ассоциативных массивов.
10.Какая конструкция предназначена для просмотра ассоциативных массивов в цикле?
11.Опишите функции сортировки массивов, объяснив их различие.

Задание
№ 1
Используя переменные $color и $size сформировать php-скрипт z2-1.php, который выводит на экран строку текста заданным цветом и размером.
(Использовать листинг 1-2).

№ 2
Пусть в скрипте z2-5.php переменная $lang может принимать значения "ru", "en", "fr" или "de". Используя операторы if-else-elseif обеспечьте вывод на экран полного названия языка (русский, английский, …) в зависимости от того, что задано в строке вызова скрипта:
z05-5.php?lang=ru [en/fr/de]
Обязательно предусмотреть случай неверного задания значения параметра lang - тогда должна выводиться надпись "язык неизвестен".
(Использовать листинг 6-2).

№ 3
Используя вложенные циклы while, в скрипте z3-1.php отобразите на экране таблицу Пифагора 10×10 (т.е. таблицу умножения чисел от 1 до 10). При этом фон диагональных ячеек должен быть того цвета, который задается вне циклов. Ширина рамки таблицы равна 1, отступ содержимого ячеек от границы равен 5.
Обязательно используйте служебные символы табуляции и новой строки для создания читабельного html-файла.
(Использовать листинги 7-1 и 7-6).

№ 4
Используя вложенные циклы for в скрипте z3-2.php отобразите на экране таблицу сложения чисел от 1 до 10. При этом цвет цифр в верхней строке и левом столбце должен быть задан через $color вне циклов, а в левой верхней ячейке должен стоять знак "+" красного цвета. Ширина рамки таблицы равна 1, отступ содержимого ячеек от границы равен 5.

(Использовать листинг 7-6).


№ 5
В скрипте z3-3.php создайте 4 функции с именами Ru(), En(), Fr(), De(). Каждая функция выводит на экран приветствие на соответствующем языке:
Ru() - "Здравствуйте!",
En() - "Hello!",
Fr() - "Bonjour!" и
De() - "Guten Tag!".
Эти функции имеют аргумент $color, который определяет цвет выводимого текста. Используя функцию-переменную $lang(), отобразить на экране одно из приветствий, причем какое приветствие будет выведено и каким цветом - задать как параметры в строке вызова скрипта:
z3-3.php?lang=Ru&color=[назв-е цвета]
En/Fr/De
(Использовать листинг 8-3).

№ 6
В скрипте z3-5.php
  1. Создайте массив $treug[] "треугольных" чисел, т.е. чисел вида n(n+1)/2 (где n=1,2,: 10) и выведите значения этого массива на экран в строку (через 2 пробела).
  2. Создайте массив $kvd[] квадратов натуральных чисел от 1 до 10, выведите значения этого массива на экран в строку.
  3. Объедините эти 2 массива в массив $rez[], выведите результат на экран.
  4. Отсортируйте массив $rez[], выведите результат на экран.
  5. Удалите в массиве $rez[] первый элемент, выведите результат на экран.
  6. С помощью функции array_unique() удалите из массива $rez[] повторяющиеся элементы, результат занесите в массив $rez1[] и выведите его на экран.
(Использовать листинги 9-2 - 9-10).

№ 7
В скрипте z3-6.php
1. Создайте ассоциативный массив $cust[]
с ключами cnum, cname, city, snum и rating
и значениями: 2001, Hoffman, London, 1001 и 100.
Выведите этот массив (вместе с именами ключей) на экран.
2. Отсортируйте этот массив по значениям. Выведите результат на экран.
3. Отсортируйте этот массив по ключам. Выведите результат на экран.
4. Выполните сортировку массива с помощью функции sort(). Выведите результат на экран.
(Использовать листинги 9-1 - 9-10).
Обсудим вашу работу?
При заказе дарим онлайн-тест!
Заполните форму
и мы свяжемся с вами за 2 часа