МУ по РСОИ
.pdfСодержимое файла «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>