Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ.РАБ.№4.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
194.56 Кб
Скачать

2.2 Работа с массивами

Измените файл, позволяющий сотрудникам компании читать этот файл с заказами (vieworders.php) таким образом, чтобы считывание производилось в массив, и полученная информация была доступна для дальнейшего форматирования и обработки:

<html><head>

<title>Книжный магазин – Результаты заказа</title>

</head><body>

<h1> КНИЖНЫЙ МАГАЗИН </h1>

<h2> РЕЗУЛЬТАТЫ ЗАКАЗА </h2>

<?

//Чтение файла. Каждая строка становится элементом массива.

$orders= file("orders.txt");

$number_of_orders = count($orders);// подсчет числа строк в массиве

if ($number_of_orders == 0) {

echo "<p><strong> Заказ не может быть прочитан. "

."Пожалуйста, попробуйте еще раз позже.</strong></p></body></html>";

exit;

}

echo "<table border=1>\n";

echo "<tr><th bgcolor = \"#CCCCFF\">Дата заказа</td>

<th bgcolor = \"#CCCCFF\">Сказки</td>

<th bgcolor = \"#CCCCFF\">Стихи</td>

<th bgcolor = \"#CCCCFF\">Журналы</td>

<th bgcolor = \"#CCCCFF\">Сумма заказа</td>

<th bgcolor = \"#CCCCFF\">Адрес</td>

<tr>";

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

//азбиение каждой строки

$line = explode( "\t", $orders[$i] );

// сохраняет только числа из первых трех элементов строки

$line[1] = intval( $line[1] );

$line[2] = intval( $line[2] );

$line[3] = intval( $line[3] );

// выводит каждый заказ

echo "<tr><td>$line[0]</td>

<td align = right>$line[1]</td>

<td align = right>$line[2]</td>

<td align = right>$line[3]</td>

<td align = right>$line[4]</td>

<td>$line[5]</td>

</tr>";

}

echo "</table>";

?>

</body> </html>

Подсчитайте в конце заказа общее количество каждого из наименований продукции и общую сумму всех заказов.

2.3 Работа с базой данных MySql

Запустить визуальный интерфейс для работы с СУБД MySQL PhpMyAdmin. Создать базу данных для хранения данных по продажам в магазинах (для книжного магазина назовем БД books). Создадим в этой базе данных следующие таблицы:

  • Customers(CustomerID, Name, Address, City) – для хранения данных о покупателях с полями:

CcustomerID int unsigned not null auto_increment primary key - номер покупателя,

Name char (30) not null – ФИО покупателя,

Address char(40) not null – адрес покупателя,

City char (20) not null – город доставки.

  • Orders(OrderID, CustomerlD, Amount, Date, ISBN, Quantity) – для хранения данных о заказах с полями:

ОrderID int unsigned not null auto_increment primary key – номер заказа,

СustomerID int unsigned not null – номер покупателя,

Аmount float(6,2) – сумма заказа,

Date date not null – дата заказа

ISBN char (13) not null - код ISBN книги,

Quantity tinyint unsigned - количество экземпляров.

  • Books(ISBN, Author, Title, Price) – для хранения данных о книгах с полями:

ISBN char (13) not null primary key – код ISBN книги,

Author char(30) - автор,

Title char(60) – название книги,

Price float(4,2) – цена.

Для ввода новых книг создайте файл, подобный файлу newbook.html:

<html><head>

<title> Книжный магазин – Добавление книг </title>

</head>

<body>

<h1> Книжный магазин – Добавление книг </h1>

<form action="insert_book.php" method="post">

<table border=0>

<tr><td>Код ISBN</td><td><input type=text name=isbn maxlength=13 size=13><br> </td></tr>

<tr><td>Автор</td><td><input type=text name=author maxlength=30 size=30><br> </td> </tr>

<tr><td>Название</td><td> <input type=text name=title maxlength=60 size=30> <br> </td> </tr>

<tr><td>Цена</td><td><input type=text name=price maxlength=7 size=7><br> </td></tr>

<tr><td colspan=2><input type=submit value="Записать"></td></tr>

</table>

</form>

</body>

</html>

Для заполнения таблицы в БД с книгами создайте файл, подобный файлу insert_book.php:

<html><head>

<title> Книжный магазин – Результат добавления книг </title>

</head><body>

<h1> Книжный магазин – Результат добавления книг</h1>

<?

$isbn =$_REQUEST[(isbn];

$ author =$_REQUEST[author];

$ title =$_REQUEST[title];

$ price =$_REQUEST[price];

if (!$isbn || !$author || !$title || !$price) {

echo "Вы внесли не все данные для ввода.<br>"

."Пожалуйста, вернитесь и попробуйте снова.";

exit;

}

$isbn = addslashes($isbn);

$author = addslashes($author);

$title = addslashes($title);

$price = doubleval($price);

@ $db = mysql_pconnect("localhost", "root", "");

if (!$db) {

echo "Ошибка: Не могу соединится с базой данных. Пожалуйста, попробуйте еще раз позже.";

exit;

}

mysql_select_db("books");

$query = "insert into books values ('".$isbn."', '".$author."', '".$title."', '".$price."')";

$result = mysql_query($query);

if ($result)

echo mysql_affected_rows()." книг добавлено в базу.";

?>

</body></html>

Введите не менее 5 записей в таблицу. Создайте форму для запроса книг покупателем по нужной теме:

<html><head>

<title> Книжный магазин – Поисковый каталог </title>

</head><body>

<h1> Книжный магазин – Поисковый каталог </h1>

<form action="results.php" method="post">

Выдерите критерий поиска:<br>

<select name="searchtype">

<option value="author">Автор

<option value="title">Название

<option value="isbn">код ISBN

</select>

<br>

Введите строку поиска:<br>

<input name="searchterm" type=text>

<br>

<input type=submit value="Найти">

</form>

</body></html>

И файл (results.php) для вывода результатов запроса покупателю:

<html><head>

<title> Книжный магазин – Результат поиска </title>

</head>

<body>

<h1> Книжный магазин – Результат поиска </h1>

<?

if (!$searchtype || !$searchterm) {

echo "Вы не ввели условия поиска. Пожалуйста. Попробуйте снова.";

exit;

}

$searchtype = addslashes($searchtype);

$searchterm = addslashes($searchterm);

@ $db = mysql_pconnect("localhost", "root", "");

if (!$db) {

echo " Ошибка: Не могу соединится с базой данных. Пожалуйста, попробуйте еще раз позже.";

exit;

}

mysql_select_db("books");

$query = "select * from books where ".$searchtype." like '%".$searchterm."%'";

$result = mysql_query($query);

$num_results = mysql_num_rows($result);

echo "<p>Число найденных книг: ".$num_results."</p>";

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

$row = mysql_fetch_array($result);

echo "<p><strong>".($i+1).". Название: ";

echo stripslashes($row["title"]);

echo "</strong><br>Автор: ";

echo stripslashes($row["author"]);

echo "<br>Код ISBN: ";

echo stripslashes($row["isbn"]);

echo "<br>Цена: ";

echo stripslashes($row["price"]);

echo "</p>";

}

?>

</body></html>

Создайте форму для ввода данных о покупателях и файл, заносящий введенные данные в таблицу Customers. Переделайте файл с выводом результата запроса покупателя так, чтобы по нажатию на кнопку «Заказать» происходила запись выбранной книги в таблицу Orders.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]