Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчет2

.doc
Скачиваний:
18
Добавлен:
20.05.2015
Размер:
1.3 Mб
Скачать

10

Отчет по практической работе 2

От Швыряева Юрия 195 группа

Тема: публикация данных из БД на web-сервере

Задание 1.1.

Создать файл common.php с глобальными переменными, содержащими имя сервера, имя пользователя, пароль, имя БД. Создать файл 1_1.php, в котором подключить файл common.php командой INCLUDE (см. лекцию). Вывести сообщение о корректности подключения к серверу и выбору БД.

Задание 2.1.

Задание 2.2.

Задание 2.3.

Создать файл 1_2_3.php, в нем написать скрипт, который выводит содержимое таблицы Reader c использованием функции mysql_fetch_array. Проверить корректность работы файла при добавлении новых читателей.

Задание 3.1.

Создать файл 1_3_1.php, который выводит список читателей (фамилия и имя) с указанием названий книг, которые за каждым числятся. Вывод сделать в виде равномерно-заполненных строк, т.е. разрешить повторение фамилий читателей (см рис. 1) вариант 1. Для перемещения по результирующему массиву использовать функцию mysql_fetch_object().

Создать файл 1_3_2.php, который выводит список книг для каждого читателя как представлено на рис. 2. Для этого провести упорядочение результатов в sql-запросе по фамилии с использованием раздела order by Name_reader и вывести сначала фамилию читателя, а под ней список книг, которые за данным читателем числятся (см. рис.2).

Рис. 2. Вывод книг у читателей.

Задание 4

Задание 5.1.

Создать файл 1_5_1_form.html, в котором формируется форма с одним текстовым полем, где будет вводиться название области знаний. Написать скрипт, который будет запускаться при нажатии на кнопку Submit данной формы и будет выводить список книг, по требуемой области знаний (рис.4 и рис. 5).

Рис. 4. Форма для ввода названия области знаний

Рис. 5. Результат обработки

Задание 6.

Разработать универсальную функцию, которая бы позволяла выводить данные из любой таблицы БД в виде таблицы.

Действительно, универсальный запрос, который выводит содержимое таблицы

SELECT * FROM $table_name

Перемещаться по строкам мы умеем, нам теперь необходимо научиться перемещаться по столбцам и выводить названия столбцов. Для этого воспользуемся дополнительными функциями:

mysql_list_fields($database,$table_name) – функция позволяет получить список полей таблицы $table_name в БД $database.

mysql_num_fields($list_f) – функция, которая позволяет сосчитать число полей в таблице.

function print_table($table_name) {

include (‘common.php’);

/ * сначала делаем то же, что и раньше: устанавливаем

соединение, выбираем базу и получаем список и число полей в таблице, заданной переменной */

$db=@mysql_connect($server,$user,$password) or die ('Ошибка подключения : ' . msql_error($link));

$select_db= @mysql_select_db($dbname) OR die('Ошибка в БД '.$dbname.' '.mysql_error());

$list_f = mysql_list_fields($dbname,$table_name);

$n1 = mysql_num_fields($list_f);

// сохраним имена полей в массиве $names

for($j=0;$j<$n1; $j++){

$names[] = mysql_field_name ($list_f,$j);

}

$sql = "SELECT * FROM $table_name"; // создаем SQL запрос

$q = mysql_query($sql,$conn) or die(); // отправляем

// запрос на сервер

$n = mysql_num_rows($q); // получаем число строк результата

//рисуем HTML-таблицу (красивую)

echo " <TABLE BORDER=0 CELLSPACING=0 width=90%

align=center><tr><TD BGCOLOR='#005533' align=center>

<font color='#FFFFFF'><b>$table_name</b></font></td>

</tr></TABLE>";

echo "<table cellspacing=0 cellpadding=1 border=1

width=90% align=center>";

// отображаем названия полей

echo "<tr>";

foreach ($names as $val){

echo "<th ALIGN=CENTER BGCOLOR='#C2E3B6'>

<font size=2>$val</font></th>";

}

for($i=0;$i<$n; $i++){

// получаем значение поля в виде ассоциативного массива

while($row = mysql_fetch_array($q)) {

echo "<tr>";

foreach ($names as $k => $val){

echo "<td><font size=2> $row[$val]</font></td>";

// выводим значение поля

}

echo "</tr>";

}

}

echo "</table>";

}

?>

Разберите скрипт, скопируйте его себе во вновь созданный файл tab_print.inc и отладьте, для этого создайте новый скрипт 1_6.php, в нем командой INCLUDE пригрузите файл tab_print.inc и далее сделайте вызов разработанной функции с заданным именем таблицы БД.

Функция выводит таблицу в следующем виде (рис. 7):

Рис. 7. Пример работы функции print_table

Модифицируйте скрипт, так чтобы имя таблицы передавалось как параметр, например по протоколу GET, проверьте работоспособность данного скрипта на всех таблицах.

Закончите работу и предъявите все выполненные задания преподавателю, получите зачет по второму практическому занятию.