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

МУ по РСОИ

.pdf
Скачиваний:
10
Добавлен:
02.03.2016
Размер:
499.12 Кб
Скачать

Содержимое файла «index.php».

<html>

<head>

<title>Магазин "Автозапчасти"</title> </head>

<body>

<h1>Магазин "Автозапчасти" (с использованием баз данных)</h1> <h2>Принятые заказы</h2>

<?php

//установление соединения с базой данных, параметры: имя сервера, имя рользователя,

пароль, имя базы данных

//в некоторых случаях могут отличаться, но для openservera должны работать $handle = new mysqli('openserver', 'root', '', 'spareparts');

//передача запроса на SQL, запрос указывает на использование кодировки cp1251 $handle->query("set names cp1251");

$handle->query("set character_set_server=cp1251");

//формирование строки запроса на выбор данных из таблицы

//в SELECT через запятую перечисляются выводимые поля

//в FROM указывается имя таблицы

//в ORDER BY указывается порядок и правило сортировки DESC значит по убыванию если пусто или ASC то по возрастанию

//date_format(zakazdate,'%d.%m.%Y %H:%i') as zakazdate преобразует в понятное нам представление даты и времени и выводит под именем zakazdate

$query = "SELECT idzakaz, tirekol, oilkol, sparkkol, itog, adress,

date_format(zakazdate,'%d.%m.%Y %H:%i') as zakazdate FROM zakaz

ORDER BY zakazdate DESC";

//присвоение результатов запроса переменной $result $result = $handle->query($query);

//присвоение количества строк в результате запроса переменной $numresult

$numresult=$result->num_rows;

//вывод количества строк

echo '<p>Количество записей - '.$numresult;

//построение таблицы для представления результатов запроса echo '<table border=1>';

echo '<tr><th>№</th>';

echo '<th>Дата и время заказа</th>'; echo '<th>Покрышек (шт.)</th>'; echo '<th>Масла (бут.)</th>';

echo '<th>Свечей зажигания (шт.)</th>'; echo '<th>Итого (руб.)</th>';

echo '<th>Адрес доставки</th>'; echo '<th></th>';

echo '<th></th>';

//Цикл для вывода результатов построчно for ($i=0;$i<$numresult;$i++)

{

//Представление строки результат запроса как ассоцировнного массива $row=$result->fetch_assoc();

//Вывод элемнотов массива в ячейки строки. echo '<tr><td>'.$row['idzakaz']; echo '</td><td>'.$row['zakazdate']; echo '</td><td>'.$row['tirekol']; echo '</td><td>'.$row['oilkol']; echo '</td><td>'.$row['sparkkol']; echo '</td><td>'.$row['itog'];

echo '</td><td>'.$row['adress'];

//Создание формы для реализации удаления через кнопку echo '</td><td>';

echo '<form action="delorder.php" method="post">';

//Скрытый паоаметр для идентификации строки, по полю первичного ключа

echo '<input type="hidden" name="idzakaz" value="'.$row['idzakaz'].'">'; echo '<input type="submit" value="Удалить">';

echo '</form>';

//Создание формы для реализации изменения через кнопку

echo '</td><td>';

echo '<form action="orderformedit.php" method="post">';

//Скрытый паоаметр для идентификации строки, по полю первичного ключа

echo '<input type="hidden" name="idzakaz" value="'.$row['idzakaz'].'">'; echo '<input type="submit" value="Изменить">';

echo '</form>';

}

echo '</table>'

?>

<p><a href='orderform.html'>Оформить заказ</a> <p><a href='../index.html'>К содержанию</a>

</body>

</html>

Содержимое файла «orderform.html».

<html>

<head>

<title>Магазин "Автозапчасти" - Оформление заказа</title> </head>

<body>

<h1>Магазин "Автозапчасти"</h1>

<p><a href='index.php'>Принятые заказы</a> <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="tirekol" size=3 maxlength=3></td> </tr>

<tr>

<td>Машинное масло</td>

<td align=left><input type="text" name="oilkol" size=3 maxlength=3></td> </tr>

<tr>

<td>Свечи зажигания</td>

<td align=left><input type="text" name="sparkkol" size=3 maxlength=3></td> </tr>

<tr>

<td>Адрес доставки</td>

<td align=center><input type="text" name="adress" size=60></td> </tr>

<tr>

<td colspan=2 align=center><input type=submit value="Отправить заказ"></td>

</tr>

</table>

</form>

</body>

</html>

Содержимое файла «processorder.php».

<html>

<head>

<title>Магазин "Автозапчасти" - Результаты оформления заказа</title> </head>

<body>

<h1>Магазин "Автозапчасти"</h1> <h2>Результаты оформления заказа</h2>

<?php

//присвоение переменным переданных параметров $tirekol = $_REQUEST['tirekol'];

$oilkol = $_REQUEST['oilkol']; $sparkkol = $_REQUEST['sparkkol']; $adress = $_REQUEST['adress'];

//проверка на наличие переменных для числовых используйте isset с !(отрицанием) для текстовых просто !

if ((!isset($tirekol))||(!isset($oilkol))||(!isset($sparkkol))||(!$adress))

{

echo '<p>Вы не указали все данные. Повторите ввод заказа.'; echo '<p><a href="orderform.html">К форме заказа</a>'; echo '</body>';

echo '</html>'; exit;

}

$totalkol = 0;

$totalkol = $tirekol + $oilkol + $sparkkol;

if( $totalkol == 0)

{

echo '<p>Вы ничего не выбрали. Повторите ввод заказа.'; echo '<p><a href="orderform.html">К форме заказа</a>'; echo '</body>';

echo '</html>'; exit;

}

$itog = 0;

define('TIREPRICE', 100); define('OILPRICE', 10); define('SPARKPRICE', 4);

$itog = $tirekol * TIREPRICE

+$oilkol * OILPRICE

+$sparkkol * SPARKPRICE;

//преобразование текущей даты в формат даты и времени сервера БД $zakazdate=date('Y-m-d H:i:s');

//см. index.php

$handle = new mysqli('openserver', 'root', '', 'spareparts'); $handle->query("set names cp1251");

$handle->query("set character_set_server=cp1251");

//формирование строки запроса на добавление tirekol - это поле в таблице БД, а это $tirekol

переменная, значение которой сохраняем в поле БД

//значения текстовых полей и датавремя помещаем в кавычки как '$adress' и '$zakazdate' $query = "INSERT INTO zakaz (tirekol, oilkol, sparkkol, itog, adress, zakazdate)

VALUES ($tirekol, $oilkol, $sparkkol, $itog, '$adress', '$zakazdate')";

//передача строки запроса соединению с БД и сотвественно его выполнение $result = $handle->query($query);

//проверка результата, если есть то запрос выполнился если нет то есть ошибки, либо в запросе, либо в типах данных

if ($result) echo "Данные сохранены";

if (!$result) echo "Ошибка сохранения данных";

echo "<p><a href='index.php'>Принятые заказы</a>";

?>

</body>

</html>

Содержимое «delorder.php»

<html>

<head>

<title>Магазин "Автозапчасти" - Удаление заказа</title> </head>

<body>

<h1>Магазин "Автозапчасти"</h1> <h2>Удаление заказа</h2>

<?php

$idzakaz = $_REQUEST['idzakaz'];

$handle = new mysqli('openserver', 'root', '', 'spareparts'); $handle->query("set names cp1251"); $handle->query("set character_set_server=cp1251");

//формирование строки запроса на удаление заказа

$query = "DELETE FROM zakaz WHERE idzakaz=$idzakaz";

//передача строки запроса соединению с БД и сотвественно его выполнение $result = $handle->query($query);

//проверка результата, если есть то запрос выполнился если нет то есть ошибки, либо в запросе, либо в типах данных

if ($result) echo "Данные удалены";

if (!$result) echo "Ошибка удаления данных";

echo "<p><a href='index.php'>Принятые заказы</a>";

?>

</body>

</html>

Содержимое «orderformedit.php»

<html>

<head>

<title>Магазин "Автозапчасти" - Изменение заказа</title>

</head>

<body>

<h1>Магазин "Автозапчасти"</h1>

<p><a href='index.php'>Принятые заказы</a> <h2>Изменение заказа</h2>

<form action="processorderedit.php" method=post> <table border=0>

<tr bgcolor=#cccccc>

<td width=150>Товар</td>

<td width=15>Количество</td>

</tr>

<?php

$idzakaz = $_REQUEST['idzakaz'];

echo '<input type="hidden" name="idzakaz" value="'.$idzakaz.'">';

$handle = new mysqli('openserver', 'root', '', 'spareparts'); $handle->query("set names cp1251"); $handle->query("set character_set_server=cp1251");

//Формируем строку запроса на выборку данных по конкретному заказу, чтобы пользователь видел данные изменяемого заказа

//ORDER BY отсутствует так как строка одна, вместо используем условие для выбора конкретной строки(WHERE idzakaz=$idzakaz) $idzakaz передается с index.php

$query = "SELECT idzakaz, tirekol, oilkol, sparkkol, itog, adress,

date_format(zakazdate,'%d.%m.%Y %H:%i') zakazdate FROM zakaz

WHERE idzakaz=$idzakaz"; $result = $handle->query($query);

$row=$result->fetch_assoc();

//вывод данных из массива ассоциируемого со строкой результата в поля формы, //для текстовых значений, которые могут содержать " или ' используем функцию htmlspecialchars()

echo '<tr><td>Автопокрышки</td><td align=left><input type="text" name="tirekol" size=3 maxlength=3 value='.$row['tirekol'].'></td></tr>';

echo '<tr><td>Машинное масло</td><td align=left><input type="text" name="oilkol" size=3 maxlength=3 value='.$row['oilkol'].'></td></tr>';

echo '<tr><td>Свечи зажигания</td><td align=left><input type="text" name="sparkkol" size=3 maxlength=3 value='.$row['sparkkol'].'></td></tr>';

echo '<tr><td>Адрес доставки</td><td align=center><input type="text" name="adress" size=60 value="'.htmlspecialchars($row['adress']).'"></td></tr>';

?>

<tr><td colspan=2 align=center><input type=submit value="Изменить

заказ"></td></tr> </table> </form>

</body>

</html>

Содержимое «processorderedit.php»

<html>

<head>

<title>Магазин "Автозапчасти" - Результаты изменения заказа</title> </head>

<body>

<h1>Магазин "Автозапчасти"</h1> <h2>Результаты изменения заказа</h2>

<?php

$idzakaz = $_REQUEST['idzakaz']; $tirekol = $_REQUEST['tirekol']; $oilkol = $_REQUEST['oilkol']; $sparkkol = $_REQUEST['sparkkol']; $adress = $_REQUEST['adress'];

if ((!isset($tirekol))||(!isset($oilkol))||(!isset($sparkkol))||(!$adress))

{

echo '<p>Вы не указали все данные. Повторите ввод заказа.'; echo '<p><a href="orderformedit.html">К форме заказа</a>'; echo '</body>';

echo '</html>'; exit;

}

$totalkol = 0;

$totalkol = $tirekol + $oilkol + $sparkkol;

if( $totalkol == 0)

{

echo '<p>Вы ничего не выбрали. Повторите ввод заказа.'; echo '<p><a href="orderformedit.html">К форме заказа</a>'; echo '</body>';

echo '</html>'; exit;

}

$itog = 0;

define('TIREPRICE', 100); define('OILPRICE', 10); define('SPARKPRICE', 4);

$itog = $tirekol * TIREPRICE + $oilkol * OILPRICE + $sparkkol * SPARKPRICE;

$zakazdate=date('Y-m-d H:i:s');

$handle = new mysqli('openserver', 'root', '', 'spareparts'); $handle->query("set names cp1251"); $handle->query("set character_set_server=cp1251");

//Формирование строки запроса на изменение данных о заказе $query = "UPDATE zakaz SET

tirekol=$tirekol, oilkol=$oilkol, sparkkol=$sparkkol, itog=$itog, adress='$adress', zakazdate='$zakazdate'

WHERE idzakaz=$idzakaz"; $result = $handle->query($query);

if ($result) echo "Данные сохранены";

if (!$result) echo "Ошибка сохранения данных";

echo "<p><a href='index.php'>Принятые заказы</a>";

?>

</body>

</html>