Лаб Работа с файлами Использование текстового файла в качестве базы данных


Download 69 Kb.
bet4/5
Sana14.04.2023
Hajmi69 Kb.
#1356943
1   2   3   4   5
Bog'liq
Лаб 2-Работа с файлами

Дальнейшая доработка
Приведенная форма для редактирования не удобна и не функциональна.
Сделаем так, чтобы редактируемые значения уже были в форме, когда пользователь ее увидит.


ЭТО БУДЕТ РАБОЧИЙ ВЫАРИАНТ РЕДАКТИРОВАНИЯ

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


Поэтому изменим в файле для сохранения заказов procesord_acs.php строку, формируемую для сохранения в файл:


$vivod=$date."\t"."|"." Заказано Антирадаров: ".$radar."\t"."|"." Заказано Видеорегистраторов: ".$registrator."\t"."|"."Сумма заказа (руб): ".$totalamount." \t"."|"." Адрес доставки: ".$adress."\n";

Необходимо удалить прежний файл order.txt и сделать несколько новых заказов.


Теперь в форме для редактирования можно использовать введенные разделители для разборки текста, используя функции explode() и split() - разделить на подстроки (для выбора нужной записи) и разделить уже подстроку на элементы массива.


Ориентировочный код нового файла form_redaktor.php:




Редактируем запись ";?>
$arr2=explode("|",$arr[$i]); for($j = 0; $j < count($arr2); $j++) echo $arr2[$j]."
";
@list($mm, $adres) = split ('[:]', $arr2[4]);
//Или так:
list($mm, $summa) = explode (':', $arr2[3]);
@list($mm, $registrator) = split ('[:]', $arr2[2]); @list($mm, $radar) = split ('[:]', $arr2[1]);
?>
























Аксессуары Количество
Антирадар (модель)
Видеорегистратор (модель)
Сумма заказа (руб)
Адрес доставки




В этом файле мы сначала считали файл в массив, выбрали запись по указанному номеру, разобрали ее по разделителям, split нам дает массив данных, а list присваивает сразу всем переменным из списка значения этих элементов массива.


Эти значения переменных вводим в качестве value у элементов формы (вставки на PHP) и таким образом, видим форму, готовую для редактирования, т.к. видим заполненные прежние значения.


Здесь для редактирования добавлена и сумма заказа (например, для скидки клиентам).


В файле обработчике формы редактирования obrab_form_redaktor.php также необходимо заменить формируемую строку для сохранения в файл:


$date=(string) date('H:i, j F Y'); $totalamount=$_POST['summa'];
$arr[$nomer]=$date."\t"."|"." Заказано Антирадаров: ".$radar."\t"."|"." Заказано Видеорегистраторов: ".$registrator."\t"
."|"."Сумма заказа (руб): ".$totalamount." \t"."|"." Адрес доставки: ".$adress."\n";

В целом текст этого обработчика obrab_form_redaktor.php может быть таким:


$nomer=$nomer2-1;
$arr = file("../order.txt");
$date=(string) date(\H:i, j F Y'); $totalamount=$_POST['summa'];
$arr[$nomer]=$date."\t"."|"." Заказано Антирадаров: ".$radar."\t"."|"." Заказано Видеорегистраторов: ".$registrator."\t"
."|"."Сумма заказа (руб): ".$totalamount." \t"."|"." Адрес доставки: ".$adress."\n";

$ss=implode("",$arr);


$fp=fopen("../order.txt",\w');
fwrite($fp,$ss);
fclose($fp);
include("redaktirovanie.php");
?>

Совершенно аналогичную разборку строк можно провести и для файла chitaem.php просмотра заказов, например, чтобы вывести в красивую таблицу:





Заказы





$arr = file("order.txt"); for($i = 0; $i < count($arr); $i++){


echo"";
$arr2=explode("|",$arr[$i]);
for($j = 0; $j < 5; $j++) {
list($mm, $tt) = explode (':', $arr2[$j]);echo"";}
echo"";}
echo"
ДатаАнтирадарыРегистраторыСумма (руб)Адрес
"; echo $tt; echo"
";
?>

На страницу администратора



Download 69 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling