Базы Данных. Работа Лабораторная. PHP 4-10
Состав работы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Описание
No 1
Используя переменные $color и $size сформировать php-скрипт z05-1.php, который выводит на экран строку текста заданным цветом и размером.
(Использовать листинг 1-2).
No 2
В скрипте z05-2.php имеется переменная $breakfast со значением "gamburger" и динамическая переменная $$breakfast со значением " and tea".
Объяснить, что будет выведено на экран в случаях (а), (б), (в) и почему:
(а) print "$breakfast $gamburger";
(б) print "$breakfast"; print "$$breakfast";
(в) print $breakfast; print $$breakfast;
(Использовать листинг 2-1).
No 3
Выполните листинг 3-1 (ls3-1.php).
В скрипте z05-3.php создайте переменную $breakfast со значением "gamburger" и переменную $breakfast2 являющуюся ссылкой на переменную $breakfast. Отобразите на экране значение переменной $breakfast2 до, а затем после присвоения переменной $breakfast значения "tea". Объясните результат.
(Использовать листинг 2-2).
No 4
В скрипте z05-4.php создайте константу NUM_E со значением 2.71828 (число е).
Выведите на экран значение этой константы в виде строки "Число e равно ...".
Присвойте переменной $num_e1 значение константы и отобразите тип переменной $num_e1.
Последовательно измените тип переменной $num_e1 на строковый, целый и булевский; отобразите тип и получившееся значение переменной $num_e1.
(Использовать листинги 3-2 и 5-1).
No 5
Пусть в скрипте z05-5.php переменная $lang может принимать значения "ru", "en", "fr" или "de". Используя операторы if-else-elseif обеспечьте вывод на экран полного названия языка (русский, английский, ...) в зависимости от того, что задано в строке вызова скрипта:
z05-5.php?lang=ru [en/fr/de]
Обязательно предусмотреть случай неверного задания значения параметра lang - тогда должна выводиться надпись "язык неизвестен".
(Использовать листинг 6-2).
No 6
Сделайте тоже самое, что в задании No 5, но используя оператор switch
(скрипт z05-6.php).
(Использовать листинг 6-3).
No 7
Пусть в скрипте z05-7.php переменная $lang может принимать 2 значения "ru" или "en". Используя оператор ? обеспечьте вывод на экран фразы "Привет" или "Hello" в зависимости от того, что задано в строке вызова скрипта:
z05-7.php?lang=ru [en]
(Использовать листинг 6-4).
Практическое занятие N 5
No 1
Выполните листинги 7-1, 7-2, 7-3, 7-4, 7-5.
Используя вложенные циклы while в скрипте z06-1.php отобразите на экране таблицу Пифагора 10×10 (т.е. таблицу умножения чисел от 1 до 10). При этом фон диагональных ячеек должен быть того цвета, который задается вне циклов. Ширина рамки таблицы равна 1, отступ содержимого ячеек от границы равен 5.
1 2 3 ... 10
2 4 6 ... 20
3 6 9 ... 30
... ... ... ... ...
10 20 30 ... 100
Обязательно используйте служебные символы табуляции и новой строки для создания читабельного html-файла.
(Использовать листинги 7-1 и 7-6).
No 2
Используя вложенные циклы for в скрипте z06-2.php отобразите на экране таблицу сложения чисел от 1 до 10. При этом цвет цифр в верхней строке и левом столбце должен быть задан через $color вне циклов, а в левой верхней ячейке должен стоять знак "+" красного цвета. Ширина рамки таблицы равна 1, отступ содержимого ячеек от границы равен 5.
+ 2 3 ... 10
2 4 5 ... 12
3 5 6 ... 13
... ... ... ... ...
10 12 13 ... 20
(Использовать листинг 7-6).
No 3
В скрипте z06-3.php создайте 4 функции с именами Ru(), En(), Fr(), De(). Каждая функция выводит на экран приветствие на соответствующем языке:
Ru() - "Здравствуйте!",
En() - "Hello!",
Fr() - "Bonjour!" и
De() - "Guten Tag!".
Эти функции имеют аргумент $color, который определяет цвет выводимого текста. Используя функцию-переменную $lang(), отобразить на экране одно из приветствий, причем какое приветствие будет выведено и каким цветом - задать как параметры в строке вызова скрипта:
z06-3.php?lang=Ru&color=[назв-е цвета]
En/Fr/De
(Использовать листинг 8-3).
No 4
В скрипте z06-4.php используя аргументы $day и $color функции WeekDay(), а также глобальную переменную $size отобразите названия дней недели уменьшающимся размером (начиная с 7) и разными цветами:
понедельник
вторник
среда
четверг
пятница
суббота
воскресенье
(Использовать листинги 8-1 и 8-4).
No 5
Выполните листинги 8-5, 8-6, 8-7, 8-8, 8-9.
Практическое занятие N 6
No 1
В скрипте z07-1.php
Создайте массив $treug[] "треугольных" чисел, т.е. чисел вида n(n+1)/2 (где n=1,2,... 10) и выведите значения этого массива на экран в строку (через 2 пробела).
Создайте массив $kvd[] квадратов натуральных чисел от 1 до 10, выведите значения этого массива на экран в строку.
Объедините эти 2 массива в массив $rez[], выведите результат на экран.
Отсортируйте массив $rez[], выведите результат на экран.
Удалите в массиве $rez[] первый элемент, выведите результат на экран.
С помощью функции array_unique() удалите из массива $rez[] повторяющиеся элементы, результат занесите в массив $rez1[] и выведите его на экран.
(Использовать листинги 9-2 - 9-10).
No 2
В скрипте z07-2.php
1. Создайте массив $treug[] "треугольных" чисел (для n от 1 до 30)
и массив квадратов $kvd[] (для n от 1 до 30).
2. Используя вложенные циклы for отобразите на экране таблицу Пифагора 30×30 (размер чисел в ячейках: size=1). В этой таблице фон у ячеек с квадратами чисел должен быть синим, а у ячеек с "треугольными" числами - зеленым. У ячеек, в которых стоят числа, одновременно являющиеся и квадратами и "треугольными" (здесь это числа 1 и 36) фон должен быть красным. У остальных ячеек фон белый. Для проверки правильности закрашивания ячеек, под таблицей выведите "треугольные" числа в строку. В результате должно получиться так:
(Использовать листинги 9-2 и 7-6).
No 3
С помощью скрипта z07-3.php отобразите на экране таблицу Пифагора 30×30 (border=1, отступ содержимого ячеек от границы равен 0, ширина ячейки 14 пикселов, высота ячейки 15 пикселов, размер символов в ячейке size=1, но вместо чисел поставьте неразрывный пробел: ).
Фон ячеек определяется в зависимости от того, чему равен остаток от деления числа в ячейке на 7 следующим образом:
если остаток равен 0, то фон белый (white),
если 1 - голубой (aqua),
если 2 - синий (blue),
если 3 - желтый (yellow),
если 4 - фиолетовый (purple),
если 5 - красный (red)
и если 6 - лимонный (lime)
(здесь можно использовать либо оператор if, либо switch).
Посмотрите на получившийся узор:
No 4
В скрипте z07-4.php
1. Создайте массив $colors[], элементами которого являются цвета: белый, голубой, синий, желтый, фиолетовый, красный и лимонный
(т.е. последовательность цветов из предыдущего скрипта).
2. Используя таблицу Пифагора из предыдущего скрипта (z07-3.php), добавьте еще один внешний цикл, его индекс k - это число (от 4 до 7), в зависимости от остатков от деления на которое ячейки будут раскрашиваться в цвета из массива $colors[]. Таким образом, должно получиться 4 таблицы-мозаики. Перед каждой таблицей выведите чему равно k (т.е. на что мы делим).
k=4
k=5
k=6
k=7
No 5
В скрипте z07-5.php
1. Создайте ассоциативный массив $cust[]
с ключами cnum, cname, city, snum и rating
и значениями: 2001, Hoffman, London, 1001 и 100.
Выведите этот массив (вместе с именами ключей) на экран.
2. Отсортируйте этот массив по значениям. Выведите результат на экран.
3. Отсортируйте этот массив по ключам. Выведите результат на экран.
4. Выполните сортировку массива с помощью функции sort().
Выведите результат на экран и объясните что получилось.
(Использовать листинги 9-1 - 9-10).
Практическое занятие N 7
No 1
Создайте файл z08-1a.htm с HTML-формой, позволяющей выбрать
а) горизонтальное (align, варианты значений: left, center, right),
б) вертикальное (valign, варианты значений: top, middle, bottom)
расположение текста в таблице.
Для (а) использовать радиокнопки, для (б) - флажки.
Обработка формы выполняется в скрипте z08-1b.php по нажатии кнопки "Выполнить".
В скрипте z08-1b.php сформировать таблицу, состоящую из одной ячейки шириной и высотой 100 пикселов, атрибуты ячейки align и valign должны получить значения, переданные из формы. В ячейку таблицы поместить слово "Текст". Под таблицей вставить гиперссылку на файл z08-1a.htm ("Назад").
(Использовать листинги 10-1 и 10-2).
No 2
На основе предыдущего задания создайте файл z08-2.php с HTML-формой, которая вызывает сама себя. По умолчанию установите такие значения: для align - "left", для valign - "top".
(Использовать листинг 10-8).
No 3
Создайте файл z08-3a.htm с HTML-формой "Гoрoдa и памятники" для тестирования знаний. В этой форме нужно ввести имя тестируемого, а затем для каждого памятника выбрать, в каком городе он находится. Выбор городов - раскрывающийся список. Список вопросов и ответов - в файле vopr.txt.
Обработка формы выполняется в скрипте z08-3b.php, в котором необходимо создать массив $otv с номерами правильных ответов (см. файл vopr.txt) и сделать вывод на экран имени тестируемого и оценки его знаний в зависимости от количества правильных ответов (см. файл vopr.txt, использовать оператор switch).
(Использовать листинги 10-3 и 10-4).
No 4
Листинг 10-3 последовательно сохранить как z08-45.php, z08-46.php, z08-47.php для того, чтобы выполнились листинги 10-5, 10-6 и 10-7 (ls10-5.php, ls10-6.php и ls10-7.php).
No 5
На основе листинга 10-9 создайте скрипт z08-5.php в котором сперва проверяется, было ли присвоено значение переменной $site. Если проверка дает положительный результат, осуществляется перенаправление пользователя на сайт поисковой системы, адрес которого - значение переменной $site. Если же значение переменной $site не задано, выводится HTML-форма с раскрывющимся списком поисковых сайтов:
Эти сайты должны быть занесены в массив $list_sites[]. Предполагается, что данный массив может дополняться, а значит его размер заранее неизвестен, поэтому раскрывающийся список с адресами поисковых систем сформировать с помощью цикла while и функции, возвращающей количество элементов массива.
No 1
Создайте скрипт z09-1.php, в котором в СУБД MySQL в базе данных sample с помощью функций РНР создайте таблицу notebook_brNN (здесь NN - номер бригады) со следующими полями:
id - целое, непустое, автоинкремент, первичный ключ,
name - строка переменной длины, но не более 50 символов,
city - строка переменной длины, но не более 50 символов,
address - строка переменной длины, но не более 50 символов,
birthday - значение даты (DATE), т.е. год, месяц и число,
mail - строка переменной длины, но не более 20 символов.
Обязательно предусмотрите в случае ошибки вывод предупреждения:
"Нельзя создать таблицу notebook_brNN".
Совет. Перед командами создания таблицы добавьте две РНР-команды, в первой из которых содержится SQL-запрос, уничтожающий таблицу, если она уже есть:
"DROP TABLE IF EXISTS notebook_brNN"
- для того, чтобы при повторном выполнении скрипта z09-1.php не появлялось сообщения об ошибке.
(Использовать листинг 11-1).
No 2
Создайте скрипт z09-2.php с HTML-формой для заполнения таблицы notebook_brNN:
Полями, обязательными для заполнения являются name и mail, т.е. только когда они не пустые, информация заносится в таблицу notebook_brNN.
(Использовать листинг 11-2).
No 3
Создайте скрипт z09-3.php для вывода всех записей таблицы notebook_brNN.
В форме для заполнения таблицы (z09-2.php) введите дату с нарушением формата (или вообще не число) и посмотрите, что будет занесено в таблицу.
(Использовать листинг 11-3).
No 4
Создайте скрипт z09-4.php, в котором:
1. Должна быть HTML-форма, выводящая все записи таблицы notebook_brNN, причем рядом с каждой строкой таблицы стоит радиокнопка для выбора той строки, в которой нужно что-то изменить:
Имя этой группы радиокнопок - id, а передаваемое значение - соответствующее значение поля id таблицы notebook_brNN (оно равно $a_row[0]).
2. Если значение переменной $id задано, вывести соответствующую строку таблицы в виде выпадающего списка, а рядом текстовое поле для ввода нового значения:
Под выпадающим списком стоит кнопка "Заменить":
Имя элемента select в форме - field_name, имя текстового поля - field_value.
В атрибуте VALUE элементов OPTION (выпадающего списка) значения укажите явно ('name', 'city' и т.д.).
А на экране должны отображаться значения ассоциативного массива
$a_row['name'] ... $a_row['mail'].
Совет. В этой же форме добавьте еще скрытое поле
<input type=hidden name=id value=$id>
чтобы не "потерять" значение пременной $id.
3. Если заданы значения переменных $id и $field_name, обновите в таблице notebook_brNN значение поля $field_name на $field_value где id='$id'.
Здесь же вставьте ссылку на файл z09-3.php, чтобы увидеть результат (возможно придется дополнительно нажать кнопку "Обновить" браузера).
(Использовать листинг 11-4).
Практическое занятие N 9
No 1
Создайте файл z10-1.htm с HTML-формой, позволяющей выбрать
а) структуру (группа флажков "structure") и/или
б) содержимое (группа флажков "content")
любой таблицы базы данных study:
При нажатии кнопки "Вывести" должен вызываться скрипт z10-2.php (для передачи названий таблиц используйте метод GET):
No 2
Скрипт z10-2.php должен быть составным, т.е. иметь вид:
Именно таким образом и происходит отделение оформления страниц сайта от обращения к СУБД и от собственно наполнения (контента) каждой страницы.
Особенно важно, чтобы для инициализации обращения к базе данных был один единственный inc-файл! Тогда, чтобы заменить логин и пароль доступа к БД (например, при смене провайдера сайта), достаточно исправить всего один файл.
No 3
В файле z10-3.inc содержится раздел <style>, в котором заданы CSS-стили для:
th - шрифт Arial, размер шрифта 10pt,
td - шрифт Courier New, размер шрифта 12pt,
h4 - цвет заголовка синий, размер шрифта 14pt.
и команды </head> <body>
No 4
В файле z10-4.inc содержатся php-команды для подключение к базе данных study.
No 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 ("Возврат к выбору таблицы").
No 6
В файле z10-6.inc содержится php-команда для отключения от базы данных.
Практическое занятие N 10
No 1
Создайте скрипт z11-1.php, в котором:
1. Присвойте переменной имя файла notebook_brNN.txt (NN - номер бригады). Проверьте, существует ли такой файл на сервере, если да — выведите фразу "файл существует", если нет — создайте файл с помощью соответствующей функции.
Откройте созданный файл на запись.
2. Извлеките всю информацию из таблицы notebook_brNN (NN - номер бригады) в базе данных sample.
В цикле, перебирая содержимое строк таблицы:
с помощью функции ereg_replace() замените встречающиеся даты из формата ГГГГ-ММ-ДД в формат ДД-ММ-ГГГГ
запишите в файл notebook_brNN.txt последовательно содержимое каждой ячейки таблицы notebook_brNN (с уже исправленной датой!), причем, в качестве разделителя записей используйте последовательность символов
"пробел | пробел", т.е. " | "
после считывания каждой строки таблицы добавляйте в файл символы "\n" (признак конца строки)
3. Закройте файл notebook_brNN.txt. Затем откройте его на чтение, прочтите его построчно и выведите результат на экран тоже построчно:
(Использовать листинги 11-3, 12-6 и 12-8).
No 2
Создайте скрипт z11-2.php, в котором:
1. Присвойте переменной имя файла notebook_brNN.txt (NN - номер бригады). Проверьте, существует ли такой файл на сервере, если да, то прочтите информацию из файла в массив $file_array построчно помощью функции file().
2. Создайте html-таблицу (рамка=1, отступ содержимого от границ ячеек=10) для вывода на экран массива $file_array.
В цикле, перебирая содержимое массива:
примените функцию rtrim() для удаления с правого конца каждой строки (являющейся элементом массива) последовательности символов "| \n"
[функция rtrim() имеет 2 аргумента: 1 — строка символов, 2 — последовательность символов, (включая пробелы!), которую нужно удалить в конце строки].
с помощью соответствующей функции замените "|" на "</td><td>"
Имейте в виду, что символ "|" является служебным в РНР, поэтому его необходимо экранировать.
с помощью функции preg_replace() замените e-mail на гиперссылку "mailto:". Как шаблон можно задать образец
"(любые символы кроме пробела)@(любые символы кроме пробела)".
3. Ниже таблицы с помощью соответствующей функции выведите на экран дату и время последней модификации файла notebook_brNN.txt:
(Использовать листинги 13-2 и 14-2).
No 3
Выполните листинги 14-1, 14-3, 14-4.
Используя переменные $color и $size сформировать php-скрипт z05-1.php, который выводит на экран строку текста заданным цветом и размером.
(Использовать листинг 1-2).
No 2
В скрипте z05-2.php имеется переменная $breakfast со значением "gamburger" и динамическая переменная $$breakfast со значением " and tea".
Объяснить, что будет выведено на экран в случаях (а), (б), (в) и почему:
(а) print "$breakfast $gamburger";
(б) print "$breakfast"; print "$$breakfast";
(в) print $breakfast; print $$breakfast;
(Использовать листинг 2-1).
No 3
Выполните листинг 3-1 (ls3-1.php).
В скрипте z05-3.php создайте переменную $breakfast со значением "gamburger" и переменную $breakfast2 являющуюся ссылкой на переменную $breakfast. Отобразите на экране значение переменной $breakfast2 до, а затем после присвоения переменной $breakfast значения "tea". Объясните результат.
(Использовать листинг 2-2).
No 4
В скрипте z05-4.php создайте константу NUM_E со значением 2.71828 (число е).
Выведите на экран значение этой константы в виде строки "Число e равно ...".
Присвойте переменной $num_e1 значение константы и отобразите тип переменной $num_e1.
Последовательно измените тип переменной $num_e1 на строковый, целый и булевский; отобразите тип и получившееся значение переменной $num_e1.
(Использовать листинги 3-2 и 5-1).
No 5
Пусть в скрипте z05-5.php переменная $lang может принимать значения "ru", "en", "fr" или "de". Используя операторы if-else-elseif обеспечьте вывод на экран полного названия языка (русский, английский, ...) в зависимости от того, что задано в строке вызова скрипта:
z05-5.php?lang=ru [en/fr/de]
Обязательно предусмотреть случай неверного задания значения параметра lang - тогда должна выводиться надпись "язык неизвестен".
(Использовать листинг 6-2).
No 6
Сделайте тоже самое, что в задании No 5, но используя оператор switch
(скрипт z05-6.php).
(Использовать листинг 6-3).
No 7
Пусть в скрипте z05-7.php переменная $lang может принимать 2 значения "ru" или "en". Используя оператор ? обеспечьте вывод на экран фразы "Привет" или "Hello" в зависимости от того, что задано в строке вызова скрипта:
z05-7.php?lang=ru [en]
(Использовать листинг 6-4).
Практическое занятие N 5
No 1
Выполните листинги 7-1, 7-2, 7-3, 7-4, 7-5.
Используя вложенные циклы while в скрипте z06-1.php отобразите на экране таблицу Пифагора 10×10 (т.е. таблицу умножения чисел от 1 до 10). При этом фон диагональных ячеек должен быть того цвета, который задается вне циклов. Ширина рамки таблицы равна 1, отступ содержимого ячеек от границы равен 5.
1 2 3 ... 10
2 4 6 ... 20
3 6 9 ... 30
... ... ... ... ...
10 20 30 ... 100
Обязательно используйте служебные символы табуляции и новой строки для создания читабельного html-файла.
(Использовать листинги 7-1 и 7-6).
No 2
Используя вложенные циклы for в скрипте z06-2.php отобразите на экране таблицу сложения чисел от 1 до 10. При этом цвет цифр в верхней строке и левом столбце должен быть задан через $color вне циклов, а в левой верхней ячейке должен стоять знак "+" красного цвета. Ширина рамки таблицы равна 1, отступ содержимого ячеек от границы равен 5.
+ 2 3 ... 10
2 4 5 ... 12
3 5 6 ... 13
... ... ... ... ...
10 12 13 ... 20
(Использовать листинг 7-6).
No 3
В скрипте z06-3.php создайте 4 функции с именами Ru(), En(), Fr(), De(). Каждая функция выводит на экран приветствие на соответствующем языке:
Ru() - "Здравствуйте!",
En() - "Hello!",
Fr() - "Bonjour!" и
De() - "Guten Tag!".
Эти функции имеют аргумент $color, который определяет цвет выводимого текста. Используя функцию-переменную $lang(), отобразить на экране одно из приветствий, причем какое приветствие будет выведено и каким цветом - задать как параметры в строке вызова скрипта:
z06-3.php?lang=Ru&color=[назв-е цвета]
En/Fr/De
(Использовать листинг 8-3).
No 4
В скрипте z06-4.php используя аргументы $day и $color функции WeekDay(), а также глобальную переменную $size отобразите названия дней недели уменьшающимся размером (начиная с 7) и разными цветами:
понедельник
вторник
среда
четверг
пятница
суббота
воскресенье
(Использовать листинги 8-1 и 8-4).
No 5
Выполните листинги 8-5, 8-6, 8-7, 8-8, 8-9.
Практическое занятие N 6
No 1
В скрипте z07-1.php
Создайте массив $treug[] "треугольных" чисел, т.е. чисел вида n(n+1)/2 (где n=1,2,... 10) и выведите значения этого массива на экран в строку (через 2 пробела).
Создайте массив $kvd[] квадратов натуральных чисел от 1 до 10, выведите значения этого массива на экран в строку.
Объедините эти 2 массива в массив $rez[], выведите результат на экран.
Отсортируйте массив $rez[], выведите результат на экран.
Удалите в массиве $rez[] первый элемент, выведите результат на экран.
С помощью функции array_unique() удалите из массива $rez[] повторяющиеся элементы, результат занесите в массив $rez1[] и выведите его на экран.
(Использовать листинги 9-2 - 9-10).
No 2
В скрипте z07-2.php
1. Создайте массив $treug[] "треугольных" чисел (для n от 1 до 30)
и массив квадратов $kvd[] (для n от 1 до 30).
2. Используя вложенные циклы for отобразите на экране таблицу Пифагора 30×30 (размер чисел в ячейках: size=1). В этой таблице фон у ячеек с квадратами чисел должен быть синим, а у ячеек с "треугольными" числами - зеленым. У ячеек, в которых стоят числа, одновременно являющиеся и квадратами и "треугольными" (здесь это числа 1 и 36) фон должен быть красным. У остальных ячеек фон белый. Для проверки правильности закрашивания ячеек, под таблицей выведите "треугольные" числа в строку. В результате должно получиться так:
(Использовать листинги 9-2 и 7-6).
No 3
С помощью скрипта z07-3.php отобразите на экране таблицу Пифагора 30×30 (border=1, отступ содержимого ячеек от границы равен 0, ширина ячейки 14 пикселов, высота ячейки 15 пикселов, размер символов в ячейке size=1, но вместо чисел поставьте неразрывный пробел: ).
Фон ячеек определяется в зависимости от того, чему равен остаток от деления числа в ячейке на 7 следующим образом:
если остаток равен 0, то фон белый (white),
если 1 - голубой (aqua),
если 2 - синий (blue),
если 3 - желтый (yellow),
если 4 - фиолетовый (purple),
если 5 - красный (red)
и если 6 - лимонный (lime)
(здесь можно использовать либо оператор if, либо switch).
Посмотрите на получившийся узор:
No 4
В скрипте z07-4.php
1. Создайте массив $colors[], элементами которого являются цвета: белый, голубой, синий, желтый, фиолетовый, красный и лимонный
(т.е. последовательность цветов из предыдущего скрипта).
2. Используя таблицу Пифагора из предыдущего скрипта (z07-3.php), добавьте еще один внешний цикл, его индекс k - это число (от 4 до 7), в зависимости от остатков от деления на которое ячейки будут раскрашиваться в цвета из массива $colors[]. Таким образом, должно получиться 4 таблицы-мозаики. Перед каждой таблицей выведите чему равно k (т.е. на что мы делим).
k=4
k=5
k=6
k=7
No 5
В скрипте z07-5.php
1. Создайте ассоциативный массив $cust[]
с ключами cnum, cname, city, snum и rating
и значениями: 2001, Hoffman, London, 1001 и 100.
Выведите этот массив (вместе с именами ключей) на экран.
2. Отсортируйте этот массив по значениям. Выведите результат на экран.
3. Отсортируйте этот массив по ключам. Выведите результат на экран.
4. Выполните сортировку массива с помощью функции sort().
Выведите результат на экран и объясните что получилось.
(Использовать листинги 9-1 - 9-10).
Практическое занятие N 7
No 1
Создайте файл z08-1a.htm с HTML-формой, позволяющей выбрать
а) горизонтальное (align, варианты значений: left, center, right),
б) вертикальное (valign, варианты значений: top, middle, bottom)
расположение текста в таблице.
Для (а) использовать радиокнопки, для (б) - флажки.
Обработка формы выполняется в скрипте z08-1b.php по нажатии кнопки "Выполнить".
В скрипте z08-1b.php сформировать таблицу, состоящую из одной ячейки шириной и высотой 100 пикселов, атрибуты ячейки align и valign должны получить значения, переданные из формы. В ячейку таблицы поместить слово "Текст". Под таблицей вставить гиперссылку на файл z08-1a.htm ("Назад").
(Использовать листинги 10-1 и 10-2).
No 2
На основе предыдущего задания создайте файл z08-2.php с HTML-формой, которая вызывает сама себя. По умолчанию установите такие значения: для align - "left", для valign - "top".
(Использовать листинг 10-8).
No 3
Создайте файл z08-3a.htm с HTML-формой "Гoрoдa и памятники" для тестирования знаний. В этой форме нужно ввести имя тестируемого, а затем для каждого памятника выбрать, в каком городе он находится. Выбор городов - раскрывающийся список. Список вопросов и ответов - в файле vopr.txt.
Обработка формы выполняется в скрипте z08-3b.php, в котором необходимо создать массив $otv с номерами правильных ответов (см. файл vopr.txt) и сделать вывод на экран имени тестируемого и оценки его знаний в зависимости от количества правильных ответов (см. файл vopr.txt, использовать оператор switch).
(Использовать листинги 10-3 и 10-4).
No 4
Листинг 10-3 последовательно сохранить как z08-45.php, z08-46.php, z08-47.php для того, чтобы выполнились листинги 10-5, 10-6 и 10-7 (ls10-5.php, ls10-6.php и ls10-7.php).
No 5
На основе листинга 10-9 создайте скрипт z08-5.php в котором сперва проверяется, было ли присвоено значение переменной $site. Если проверка дает положительный результат, осуществляется перенаправление пользователя на сайт поисковой системы, адрес которого - значение переменной $site. Если же значение переменной $site не задано, выводится HTML-форма с раскрывющимся списком поисковых сайтов:
Эти сайты должны быть занесены в массив $list_sites[]. Предполагается, что данный массив может дополняться, а значит его размер заранее неизвестен, поэтому раскрывающийся список с адресами поисковых систем сформировать с помощью цикла while и функции, возвращающей количество элементов массива.
No 1
Создайте скрипт z09-1.php, в котором в СУБД MySQL в базе данных sample с помощью функций РНР создайте таблицу notebook_brNN (здесь NN - номер бригады) со следующими полями:
id - целое, непустое, автоинкремент, первичный ключ,
name - строка переменной длины, но не более 50 символов,
city - строка переменной длины, но не более 50 символов,
address - строка переменной длины, но не более 50 символов,
birthday - значение даты (DATE), т.е. год, месяц и число,
mail - строка переменной длины, но не более 20 символов.
Обязательно предусмотрите в случае ошибки вывод предупреждения:
"Нельзя создать таблицу notebook_brNN".
Совет. Перед командами создания таблицы добавьте две РНР-команды, в первой из которых содержится SQL-запрос, уничтожающий таблицу, если она уже есть:
"DROP TABLE IF EXISTS notebook_brNN"
- для того, чтобы при повторном выполнении скрипта z09-1.php не появлялось сообщения об ошибке.
(Использовать листинг 11-1).
No 2
Создайте скрипт z09-2.php с HTML-формой для заполнения таблицы notebook_brNN:
Полями, обязательными для заполнения являются name и mail, т.е. только когда они не пустые, информация заносится в таблицу notebook_brNN.
(Использовать листинг 11-2).
No 3
Создайте скрипт z09-3.php для вывода всех записей таблицы notebook_brNN.
В форме для заполнения таблицы (z09-2.php) введите дату с нарушением формата (или вообще не число) и посмотрите, что будет занесено в таблицу.
(Использовать листинг 11-3).
No 4
Создайте скрипт z09-4.php, в котором:
1. Должна быть HTML-форма, выводящая все записи таблицы notebook_brNN, причем рядом с каждой строкой таблицы стоит радиокнопка для выбора той строки, в которой нужно что-то изменить:
Имя этой группы радиокнопок - id, а передаваемое значение - соответствующее значение поля id таблицы notebook_brNN (оно равно $a_row[0]).
2. Если значение переменной $id задано, вывести соответствующую строку таблицы в виде выпадающего списка, а рядом текстовое поле для ввода нового значения:
Под выпадающим списком стоит кнопка "Заменить":
Имя элемента select в форме - field_name, имя текстового поля - field_value.
В атрибуте VALUE элементов OPTION (выпадающего списка) значения укажите явно ('name', 'city' и т.д.).
А на экране должны отображаться значения ассоциативного массива
$a_row['name'] ... $a_row['mail'].
Совет. В этой же форме добавьте еще скрытое поле
<input type=hidden name=id value=$id>
чтобы не "потерять" значение пременной $id.
3. Если заданы значения переменных $id и $field_name, обновите в таблице notebook_brNN значение поля $field_name на $field_value где id='$id'.
Здесь же вставьте ссылку на файл z09-3.php, чтобы увидеть результат (возможно придется дополнительно нажать кнопку "Обновить" браузера).
(Использовать листинг 11-4).
Практическое занятие N 9
No 1
Создайте файл z10-1.htm с HTML-формой, позволяющей выбрать
а) структуру (группа флажков "structure") и/или
б) содержимое (группа флажков "content")
любой таблицы базы данных study:
При нажатии кнопки "Вывести" должен вызываться скрипт z10-2.php (для передачи названий таблиц используйте метод GET):
No 2
Скрипт z10-2.php должен быть составным, т.е. иметь вид:
Именно таким образом и происходит отделение оформления страниц сайта от обращения к СУБД и от собственно наполнения (контента) каждой страницы.
Особенно важно, чтобы для инициализации обращения к базе данных был один единственный inc-файл! Тогда, чтобы заменить логин и пароль доступа к БД (например, при смене провайдера сайта), достаточно исправить всего один файл.
No 3
В файле z10-3.inc содержится раздел <style>, в котором заданы CSS-стили для:
th - шрифт Arial, размер шрифта 10pt,
td - шрифт Courier New, размер шрифта 12pt,
h4 - цвет заголовка синий, размер шрифта 14pt.
и команды </head> <body>
No 4
В файле z10-4.inc содержатся php-команды для подключение к базе данных study.
No 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 ("Возврат к выбору таблицы").
No 6
В файле z10-6.inc содержится php-команда для отключения от базы данных.
Практическое занятие N 10
No 1
Создайте скрипт z11-1.php, в котором:
1. Присвойте переменной имя файла notebook_brNN.txt (NN - номер бригады). Проверьте, существует ли такой файл на сервере, если да — выведите фразу "файл существует", если нет — создайте файл с помощью соответствующей функции.
Откройте созданный файл на запись.
2. Извлеките всю информацию из таблицы notebook_brNN (NN - номер бригады) в базе данных sample.
В цикле, перебирая содержимое строк таблицы:
с помощью функции ereg_replace() замените встречающиеся даты из формата ГГГГ-ММ-ДД в формат ДД-ММ-ГГГГ
запишите в файл notebook_brNN.txt последовательно содержимое каждой ячейки таблицы notebook_brNN (с уже исправленной датой!), причем, в качестве разделителя записей используйте последовательность символов
"пробел | пробел", т.е. " | "
после считывания каждой строки таблицы добавляйте в файл символы "\n" (признак конца строки)
3. Закройте файл notebook_brNN.txt. Затем откройте его на чтение, прочтите его построчно и выведите результат на экран тоже построчно:
(Использовать листинги 11-3, 12-6 и 12-8).
No 2
Создайте скрипт z11-2.php, в котором:
1. Присвойте переменной имя файла notebook_brNN.txt (NN - номер бригады). Проверьте, существует ли такой файл на сервере, если да, то прочтите информацию из файла в массив $file_array построчно помощью функции file().
2. Создайте html-таблицу (рамка=1, отступ содержимого от границ ячеек=10) для вывода на экран массива $file_array.
В цикле, перебирая содержимое массива:
примените функцию rtrim() для удаления с правого конца каждой строки (являющейся элементом массива) последовательности символов "| \n"
[функция rtrim() имеет 2 аргумента: 1 — строка символов, 2 — последовательность символов, (включая пробелы!), которую нужно удалить в конце строки].
с помощью соответствующей функции замените "|" на "</td><td>"
Имейте в виду, что символ "|" является служебным в РНР, поэтому его необходимо экранировать.
с помощью функции preg_replace() замените e-mail на гиперссылку "mailto:". Как шаблон можно задать образец
"(любые символы кроме пробела)@(любые символы кроме пробела)".
3. Ниже таблицы с помощью соответствующей функции выведите на экран дату и время последней модификации файла notebook_brNN.txt:
(Использовать листинги 13-2 и 14-2).
No 3
Выполните листинги 14-1, 14-3, 14-4.
Дополнительная информация
Год сдачи - 2019.
Преподаватель - Барахнин В.Б.
Оценка - Зачет.
Преподаватель - Барахнин В.Б.
Оценка - Зачет.
Похожие материалы
Лабораторная работа «Базы данных»
lannk
: 4 апреля 2023
Цель работы: создать базу данных “BD_1” учета торговых операций,
заключенных сотрудниками фирмы.
Выполнение работы:
Работу выполняем с помощью MySQL server 8
1 Создаем базу данных с помощью команды «create database BD_1;»
Вызываем ее командой «use BD_1;»
2 Создаем таблицы
Таблица dogovor, где будет находиться информация о торговых
операциях.
Тут sname – сотрудник, snum – номер, amt – сумма, oper – вид
операции, odate – дата
Смотрим результат с помощью «describe dogovor;»
Лабораторная работа. База данных
Axi0ma
: 14 июня 2018
Создать базу данных студентов (Имя, вес, рост, возраст - сгенерировать случайно). Вывести из базы данных все записи, отсортированные по возрасту, в таблицу (TableLayout).
150 руб.
Сетевые базы данных. Лабораторная работа №5. Работа с базами данных.
zhekaersh
: 20 февраля 2015
Задание
№ 1
Создайте скрипт z5-1.php, в котором в СУБД MySQL в базе данных sample с помощью функций РНР создайте таблицу notebook со следующими полями:
id - целое, непустое, автоинкремент, первичный ключ,
name - строка переменной длины, но не более 50 символов,
city - строка переменной длины, но не более 50 символов,
address - строка переменной длины, но не более 50 символов,
birthday - значение даты (DATE), т.е. год, месяц и число,
mail - строка переменной длины, но не более 20 символов.
Обяз
35 руб.
Базы Данных. Работа Лабораторная. SQL. Вариант №2
Russianbear
: 29 мая 2019
Необходимо выполнить 11 практических заданий: 3 по языку SQL и 7 по языку РНР, при этом задания по языку SQL различны: номер варианта соответствует остатку от деления на 8 номера студента в списке группы.
BR12, 1. Напишите запрос, который выводит все строки из таблицы Покупателей, для которых номер продавца равен 1002.
BR12, 2. Напишите запрос, который выводит номера заказов, дату и номера продавцов для всех строк из таблицы Заказов.
BR12, 3. Напишите запрос, который выводит оценку (rating),
75 руб.
Сетевые базы данных-1. Работа с базами данных. Лабораторная работа № 5
wchg
: 21 августа 2013
№ 1
Создайте скрипт z5-1.php, в котором в СУБД MySQL в базе данных sample с помощью функций РНР создайте таблицу notebook со следующими полями:
id - целое, непустое, автоинкремент, первичный ключ,
name - строка переменной длины, но не более 50 символов,
city - строка переменной длины, но не более 50 символов,
address - строка переменной длины, но не более 50 символов,
birthday - значение даты (DATE), т.е. год, месяц и число,
mail - строка переменной длины, но не более 20 символов.
Обязательно п
78 руб.
Базы данных, Лабораторная работа №3
Светлана59
: 27 апреля 2023
Тема: Знакомство с СУБД Microsoft SQL Server .
Цель работы: Ознакомится с интерфейсом СУБД, разработать БД.
680 руб.
Базы данных. Лабораторная работа № 3
5234
: 26 апреля 2020
Лабораторная работа 3
Тема: Знакомство с СУБД Microsoft SQL Server .
Цель работы: Ознакомится с интерфейсом СУБД, разработать БД.
Задание без выбора вариантов, выполняется в полном объеме:
1. Установить ПО, согласно инструкциям, представленным в лабораторной работе. Реализовать в СУБД Microsoft SQL Server пример № 1 «Учебная база данных». Реализовать запросы, представленные в конце файла.
По результатам выполнения ЛР, формируется файл БД с запросами, отчет по ЛР, в текстовом формате. В отчет
420 руб.
Лабораторная работа №2, Базы данных
мила57
: 17 марта 2019
Установить ПО, согласно инструкциям, представленным в лабораторной работе. Реализовать в СУБД Microsoft SQL Server пример № 1 «Учебная база данных». Реализовать запросы, представленные в конце файла.
Перечень запросов. 1. Напишите запрос, позволяющий получить из таблицы EXAM_MARKS значения столбца MARK ( экзаменационная оценка) для всех студентов , исключив из списка повторение одинаковых строк. 2. Напишите запрос, который выполняет вывод списка фамилий студентов, обучающихся на третьем и более
250 руб.
Другие работы
Основы обработки данных. Контрольная работа. Вариант 4.
Fockus
: 7 июля 2023
Цель работы: получить навыки построения экспериментально-статистической модели объекта с использованием процедур регрессионного анализа.
В контрольной работе необходимо выполнить:
1. Рассчитать параметры уравнений линейной, степенной, экспоненциальной, параболической, показательной, гиперболической парной регрессии.
2. Для всех функций тренда рассчитать значения коэффициента детерминации R2.
3. Рассчитать значений сезонной компоненты.
4. Рассчитать точность построенных моделей.
5. Построить граф
200 руб.
Гидравлика Пермская ГСХА Задача 19 Вариант 5
Z24
: 3 ноября 2025
Закрытый резервуар А, заполненный водой, снабжен ртутным манометром и мановакуумметром. Определить глубину подключения ртутного манометра к резервуару Н, если заданы разность уровней ртути в манометре h, величина а известна и показание мановакуумметра М рм
150 руб.
Оснастка обсадной колонны перед спуском в скважину
GnobYTEL
: 12 февраля 2012
Выбираем трубы с муфтами для направления, кондуктора и эксплуатационной колонны. Минимальная толщина стенок обсадных труб для направления диаметром 377 мм равна 10 мм. Для кондуктора и эксплуатационной.
10 руб.
Теплотехника ЮУрГАУ 2017 Задача 3 Расчет ТОА Вариант 5
Z24
: 5 декабря 2025
Рекуперативный теплообменный аппарат типа «Труба в трубе»
Греющий теплоноситель — дымовые газы, которые движутся в межтрубном пространстве.
Нагреваемый теплоноситель — вода, которая движется по внутренней трубе. Теплообменник выполнен из металлических труб.
Параметры:
tʹ1 — начальная температура греющего теплоносителя, ºС;
tʹ2 — конечная температура греющего теплоносителя, ºС;
tʺ1 — начальная температура нагреваемого теплоносителя, ºС;
tʺ2 — конечная температура нагреваемого тепло
300 руб.