Во всех скриптах, в заголовке окна браузера должны быть ваши фамилия и имя!
Создайте файл z10-1.htm с HTML-формой, позволяющей выбрать
а) структуру (группа флажков "structure") и/или
б) содержимое (группа флажков "content")
любой таблицы базы данных sample:
Примечание. Если вы работаете с MySQL на своем компьютере, то сперва создайте базу данных sample, а в ней - таблицы, как в файле sample.sql
При нажатии кнопки «Вывести» должен вызываться скрипт z10-2.php (для передачи названий таблиц используйте метод GET):
Скрипт z10-2.php должен быть составным, т.е. иметь вид:
Именно таким образом и происходит отделение оформления страниц сайта от обращения
к СУБД и от собственно наполнения (контента) каждой страницы.
Особенно важно, чтобы для инициализации обращения к базе данных
был один единственный inc-файл! Тогда, чтобы заменить логин и пароль доступа к БД (например,
при смене провайдера сайта), достаточно исправить всего один файл.
В файле z10-3.inc содержится раздел <style>, в котором заданы CSS-стили для:
и команды </head> <body>
В файле z10-4.inc содержатся php-команды для подключение к базе данных sample.
В файле z10-5.inc содержатся функции vid_structure() и
vid_content() для отображения структуры и содержимого таблицы, выбранной в
HTML-форме (имя таблицы является аргументом функций).
Перед вызовом функций обязательно проверять, заданы ли значения для переменных
$structure и $content.
Функция vid_structure() отображает структуру выбранной таблицы.
Функция vid_content() отображает содержимое выбранной таблицы, причем в первой строке таблицы, в каждой ячейке <th> сперва указаны русские названия для столбцов таблицы, а через <br> собственно имена столбцов. Для этого в функции создайте ассоциативный массив $rus_name[], в котором ключами будут имена столбцов, а значениями ключей русские названия этих столбцов. Массив единый для всех 3 таблиц:
snum - номер продавца,
sname - имя продавца,
city - город,
comm - комиссионные,
cnum - номер покупателя,
cname - имя покупателя,
rating - рейтинг покупателя,
onum - номер заказа,
amt - сумма заказа,
odate - дата заказа
В заголовках <h4> («Структура таблицы » и «Содержимое таблицы ») должно подставляться название выбранной таблицы.
В конце файла z10-5.inc поставьте гиперссылку на z10-1.htm («Возврат к выбору таблицы»).
В файле z10-6.inc содержится php-команда для отключения от базы данных.
Создайте скрипт lab10-2.php, в котором в СУБД MySQL в базе данных study
с помощью функций РНР создайте таблицу notebook_NNN
(где NNN первые 3-4 латинских буквы вашей фамилии, напр. notebook_kov)
со следующими полями:
id целое, непустое, автоинкремент, первичный ключ,
name строка переменной длины, но не более 50 символов,
city строка переменной длины, но не более 50 символов,
address строка переменной длины, но не более 50 символов,
birthday значение даты (DATE), т.е. год, месяц и число,
mail строка переменной длины без ограничения количества символов.
После создания таблицы на экране должно появиться сообщение: «Таблица notebook_NNN создана».
Предусмотрите, чтобы в случае ошибки был вывод предупреждения:
«Нельзя создать таблицу notebook_NNN».
Обязательно сделайте отдельный inc-файл для подключения к базе данных (т.е. где задаются логин и пароль).
Совет. Перед командами создания таблицы добавьте две РНР-команды, в первой из которых содержится SQL-запрос, уничтожающий таблицу, если она уже есть:
"DROP TABLE IF EXISTS notebook_NNN"
для того, чтобы при повторном выполнении скрипта lab10-2.php не появлялось сообщения
об ошибке.
Создайте скрипт lab10-3.php с HTML-формой для заполнения таблицы notebook_NNN:
Полями, обязательными для заполнения являются name и mail, т.е. только когда они не пустые, информация заносится в таблицу notebook_NNN.
Создайте скрипт lab10-4.php для вывода всех записей таблицы notebook_NNN.
В форме для заполнения таблицы (lab10-3.php) введите дату с нарушением формата (или вообще не число) и посмотрите, что будет занесено в таблицу.
Создайте скрипт lab10-5.php, в котором:
1. Должна быть HTML-форма, выводящая все записи таблицы notebook_NNN, причем рядом с каждой строкой таблицы стоит радиокнопка для выбора той строки, в которой нужно что-то изменить:
Имя этой группы радиокнопок id, а передаваемое значение соответствующее значение поля id таблицы notebook_NNN (оно равно $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'.
Здесь же вставьте ссылку на файл lab10-4.php, чтобы увидеть результат (возможно придется дополнительно нажать кнопку «Обновить» браузера).