- •Хранение и получение данных из файлов и базы данных mysql с помощью языка рнр методические указания
- •Содержание
- •Цель работы
- •1 Общие положения
- •1.1 Сохранение данных с целью дальнейшего использования
- •1.2 Основные операции с файлами
- •Создание файла
- •Resource fopen ( имя_файла, тип_доступа [, use_include_path])
- •Закрытие соединения с файлом
- •Fclose (указатель на файл)
- •Запись данных в файл
- •Int fwrite ( указатель на файл, строка [, длина])
- •Чтение данных из файла
- •Int readfile ( имя_файла [, use_include_path])
- •Array file ( имя_файла [, use_include_path])
- •Проверка существования файла
- •Bool is_readable (имя файла)
- •Удаление файла
- •Bool unlink (имя_файла)
- •1.3 Работа с базой данных MySql
- •1.4 Язык sql
- •Имя_столбца тип [not null] [default значение_по_умолчанию] [auto_increment] [primary key]
- •Drop table имя_таблицы [, имя_таблицы, ...]
- •Insert into имя_таблицы [(имя_столбца,...)] values (выражение,...);
- •Insert into имя_таблицы [(имя_столбца,...)] select . . .
- •1.5 Взаимодействие php и MySql
- •Логическое mysql_select_db (строка database_name)
- •Ресурс mysql_list_fields(строка database_name, строка table_name [,ресурс link_identifier] )
- •Ресурс mysql_query ( строка query [, ресурс link_identifier])
- •2 Задание
- •2.1 Работа с файлами
- •2.2 Работа с массивами
- •2.3 Работа с базой данных MySql
- •3 Требования к отчету
- •4 Контрольные вопросы
2 Задание
По разобранному примеру работы с книжным магазином разработать файлы для работы следующих магазинов (по указанию преподавателя):
Магазин автозапчастей
Мебельный магазин
Магазин продуктовый
Магазин игрушек
Магазин бытовой техники
Компьютерный магазин
Аптека
Магазин канцтоваров
2.1 Работа с файлами
Изменить форму заказа, созданную на предыдущей лабораторной работе так, чтобы каждый из поступающих заказов записывался в файл. Форму заказа для покупателей (orderform.php) книжного магазина можно представить следующим образом:
<html>
<head> <title>КНИЖНЫЙ МАГАЗИН</title></head>
<body>
<h1> КНИЖНЫЙ МАГАЗИН </h1><h2>Форма заказа</h2>
<form action="processorder.php" method=post>
<table border=0><tr bgcolor=#cccccc>
<td width=150>Название</td> <td width=15>Количество</td></tr>
<tr> <td> Сказки Андерсона</td>
<td align=left><input type="text" name="scazki" size=3 maxlength=3></td></tr>
<tr> <td> Стихи А.С.Пушкина</td>
<td align=left><input type="text" name="ctixi" size=3 maxlength=3></td></tr>
<tr> <td> Журнал «Бизнес» </td>
<td align=left><input type="text" name="zurnal" size=3 maxlength=3></td></tr>
<tr> <td> Адрес доставки </td>
<td align=left><input type="text" name="address" size=50 maxlength=50></td></tr>
<tr><td colspan=2 align=center><input type=submit value="Отправить заказ"></td></tr>
</table>
<table border = 0 cellpadding = 3>
<tr> <td bgcolor = "#CCCCCC" align = center>Расстояние до </br> места доставки</td>
<td bgcolor = "#CCCCCC" align = center>Стоимость</td></tr>
<?
$distance = 50;
while ($distance <= 250 ){
echo "<tr>\n <td align = right>$distance</td>\n";
echo " <td align = right>". $distance / 10 ."</td>\n</tr>\n";
$distance += 50;
}?>
</table></form> </body></html>
Для обработки формы можно создать файл, аналогичный processorder.php:
<html><head>
<title>Книжный магазин – Результаты заказа</title>
</head><body>
<h1> КНИЖНЫЙ МАГАЗИН </h1>
<h2> РЕЗУЛЬТАТЫ ЗАКАЗА </h2>
<?
$scazki=$_REQUEST[scazki];
$ctixi =$_REQUEST[ctixi];
$zurnal =$_REQUEST[zurnal];
$address= $_REQUEST[address];
$totalqty = 0;
$totalqty += $scazki;
$totalqty += $ctixi;
$totalqty += $zurnal;
$totalamount = 0.00;
define("zena1", 100);
define("zena2", 10);
define("zena3", 4);
$date=date("H:i, jS F");
echo "<p>Результаты заказа";
echo $date;
echo "<br>";
echo "<p>В форме заказа было выбрано:";
echo "<br>";
if( $totalqty == 0 ) {
echo "Вы ничего не выбрали в заказе!<br>";
}
else {
if ( $scazki>0 )
echo $scazki." книг со сказками Андерсона<br>";
if ( $ctixi>0 )
echo $ctixi." Книг со стихами Пушкина<br>";
if ( $zurnal>0 )
echo $zurnal." журналов<br>";
}
$total = $scazki * zena1 + $ctixi * zena2 + $zurnal * zena3;
$total = number_format($total, 2);
echo "<br>\n";
echo "Всего заказано: ".$totalqty."<br>\n";
echo "На сумму: ".$total."<br>\n";
echo "<P>Адрес доставки ".$address."<br>";
$outputstring = $date."\t".$scazki." сказок Андерсона\t".$ctixi." Книг со стихами Пушкина\t"
.$zurnal." журналов\t".$total."\t". $address."\n";
// открываем файл для записи
@$fp = fopen("orders.txt", "a");
flock($fp, 2);
if (!$fp) {
echo "<p><strong> Заказ не может быть записан сейчас. "
."Пожалуйста, попробуйте еще раз позже.</strong></p></body></html>";
exit;
}
fwrite($fp, $outputstring);
flock($fp, 3);
fclose($fp);
echo "<p>Заказ записан.</p>";
?></body> </html>
Убедитесь, что на диске появился файл с именем orders.txt и в нем записаны все сделанные заказы. Создайте файл, позволяющий сотрудникам компании читать этот файл с заказами. Для книжного магазина этот файл (vieworders.php) может выглядеть следующим образом:
<html><head>
<title>Книжный магазин – Результаты заказа</title>
</head><body>
<h1> КНИЖНЫЙ МАГАЗИН </h1>
<h2> РЕЗУЛЬТАТЫ ЗАКАЗА </h2>
<?
$fp = fopen("orders.txt", "r");
flock($fp, 1);
if (!$fp) {
echo "<p><strong> Заказ не может быть прочитан. "
."Пожалуйста, попробуйте еще раз позже.</strong></p></body></html>";
exit;
}
while (!feof($fp)) {
$order= fgets($fp, 100);
echo $order."<br>";
}
flock($fp, 3);
fclose($fp);
?>
</body></html>
