3.2. Реализация функций CRUD
3. 2. 1. Программная реализация базовой функции Create() Добавим файлы создания новых записей, учитывая роль пользователя. На примере создания новой записи исполняемый PHP-код будет выглядеть следующим образом <? php session_start(); // начинаем новую сессию
// извлекаем переменные из сессии, если были установлены $link = $_SESSION[" link" ]; $username = $_SESSION[" username" ]; $role_id = $_SESSION[" role_id" ]; $role_name = $_SESSION[" role_name" ];
// Include config file (подключаем файлы) require_once " login_role. php"; echo " CRUD_create. php, username: ". $username. " < br/> "; echo " CRUD_create. php, role_id: ". $role_id. " < br/> "; echo setrole_by_username($username, $link); include('. /login_config. php'); echo " CRUD_create. php, role_id: ". $role_id. " < br/> "; $thread_id = mysqli_thread_id($link); echo "!!! CRUD_create. php: thread_id=". $thread_id. " < br/> ";
// Проверка роли: 1 - user, 2 - admin if($role_id! == '2') // если не админ (1 - user, 2 - admin, иначе guest) { // запоминаем ошибку для отображения в файле CRUD_error. php $_SESSION[" crud_error" ] = " Недостаточно прав для добавления данных!!! ";
header(" location: CRUD_error. php" ); exit; }
// пытаемся добавить данные //////////////////////////////////
// Define variables and initialize with empty values // (определяем и очищаем переменные) $name = $brand = $light = $TypeOfDetail = $Waterproof = $Material = $price = " "; $name_err = $brand_err = $light_err = $TypeOfDetail_err = $Waterproof_err = $Material_err = $price_err = " ";
// Processing form data when form is submitted // (обрабатываем запрос после нажатия отправки пользователем) if($_SERVER[" REQUEST_METHOD" ] == " POST" ) { // Validate name (проверяем имя) $input_name = trim($_POST[" VR_Base_D_name" ]); if(empty($input_name)) { $name_err = " Пожалуйста, введите название"; }
else { $name = $input_name; }
// Validate address (проверяем адрес) $input_brand = trim($_POST[" VR_Base_D_brand" ]);
$brand = $input_brand;
$input_light = trim($_POST[" VR_Base_D_Light" ]);
$light = $input_light;
$input_TypeOfDetail = trim($_POST[" VR_Base_D_TypeOfDetail" ]);
$TypeOfDetail = $input_TypeOfDetail;
$input_Waterproof = trim($_POST[" VR_Base_D_Waterproof" ]); if(! ctype_digit($input_Waterproof)) { $voltage_err = " Пожалуйста, введите допустимое значение"; } else { $Waterproof = $input_Waterproof; }
// Validate salary (проверяем зарплату) $input_Material = trim($_POST[" VR_Base_D_Material" ]);
$Material = $input_Material;
$input_price = trim($_POST[" VR_Base_D_price" ]); if(empty($input_price)) { $price_err = " Пожалуйста, цену"; } elseif(! ctype_digit($input_price)) { $price_err = " Пожалуйста, введите допустимое значение"; } else { $price = $input_price; }
// Check input errors before inserting in database // (если исходные данные введены, добавляем запись в БД) if(empty($name_err) & & empty($brand_err) & & empty($light_err) & & empty($TypeOfDetail_err) & & empty($Waterproof_err) & & empty($Material_err) & & empty($price_err)) { // Prepare an insert statement (подготавливаем запрос: символы? для подстановки параметров) $sql = " INSERT INTO VR_Base_Carreceiver (VR_Base_D_name, VR_Base_D_brand, VR_Base_D_Light, VR_Base_D_TypeOfDetail, VR_Base_D_Waterproof, VR_Base_D_Material, VR_Base_D_price) VALUES (?, ?, ?, ?, ?, ?, ? )"; if($stmt = mysqli_prepare($link, $sql)) { // Bind variables to the prepared statement as parameters // (связываем паременные в условии запроса: s - строка, i - целое число) mysqli_stmt_bind_param($stmt, " sssssss", $param_name, $param_brand, $param_light, $param_TypeOfDetail, $param_Waterproof, $param_Material, $param_price);
// Set parameters (запоминаем параметры) $param_name = $name; $param_brand = $brand; $param_light = $light; $param_TypeOfDetail = $TypeOfDetail; $param_Waterproof = $Waterproof; $param_Material = $Material; $param_price = $price;
// Attempt to execute the prepared statement (пытаемся выполнить запрос) if(mysqli_stmt_execute($stmt)) { // данные записаны, переходим на страницу login_welcome. php header(" location: login_welcome. php" ); exit(); } else { echo " CRUD_create. php: данные не записаны!! (( Попробуйте повторить попытку снова!! ";
} } else { echo " CRUD_create. php: запрос не выполнен!! ((< br/> "; $thread_id = mysqli_thread_id($link); echo " CRUD_create. php: thread_id=". $thread_id. " < br/> "; } // Close statement (закрываем условие запроса) mysqli_stmt_close($stmt); }
// Close connection (закрываем соединение) mysqli_close($link); } ? >
<! DOCTYPE html> < html lang=" en" > < head> < meta charset=" UTF-8" > < title> Create Record< /title> < link rel=" stylesheet" href=" https: //maxcdn. bootstrapcdn. com/bootstrap/3. 3. 7/css/bootstrap. css" > < style type=" text/css" > . wrapper { width: 500px; margin: 0 auto; background-color: rgba(255, 255, 255, 0. 78); } . body { background-image: url(" https: //cdn. wallpapersafari. com/37/6/9p3gFY.jpg" ); } < /style> < /head> < body class = " body" > < div class=" wrapper" > < div class=" container-fluid" > < div class=" row" > < div class=" col-md-12" > < div class=" page-header" > < h2> Создание новой записи< /h2> < /div> < p> Заполните данные и отправьте на добавление в базу данных!! < /p> < form action=" <? php echo htmlspecialchars($_SERVER[" PHP_SELF" ]); ? > " method=" post" > < div class=" form-group <? php echo (! empty($name_err))? 'has-error': ''; ? > " > < label> Название< /label> < input type=" text" name=" VR_Base_D_name" class=" form-control" value=" <? php echo $name; ? > " > < span class=" help-block" > <? php echo $name_err;? > < /span> < /div> < div class=" form-group <? php echo (! empty($brand_err))? 'has-error': ''; ? > " > < label> Бренд< /label> < input type=" text" name=" VR_Base_D_brand" class=" form-control" value=" <? php echo $brand; ? > " > < span class=" help-block" > <? php echo $brand_err;? > < /span> < /div> < div class=" form-group <? php echo (! empty($light_err))? 'has-error': ''; ? > " > < label> Источник света< /label> < input type=" text" name=" VR_Base_D_Light" class=" form-control" value=" <? php echo $light; ? > " > < span class=" help-block" > <? php echo $light_err;? > < /span>
< /div> < div class=" form-group <? php echo (! empty($TypeOfDetail_err))? 'has-error': ''; ? > " > < label> Тип запчасти< /label> < input type=" text" name=" VR_Base_D_TypeOfDetail" class=" form-control" value=" <? php echo $TypeOfDetail; ? > " > < span class=" help-block" > <? php echo $TypeOfDetail_err;? > < /span> < /div> < div class=" form-group <? php echo (! empty($Waterproof_err))? 'has-error': ''; ? > " > < label> Влагозащита< /label> < input type=" text" name=" VR_Base_D_Waterproof" class=" form-control" value=" <? php echo $Waterproof; ? > " > < span class=" help-block" > <? php echo $Waterproof_err;? > < /span> < /div> < div class=" form-group <? php echo (! empty($Material_err))? 'has-error': ''; ? > " > < label> Материал корпуса< /label> < input type=" text" name=" VR_Base_D_Material" class=" form-control" value=" <? php echo $Material; ? > " > < span class=" help-block" > <? php echo $Material_err;? > < /span> < /div> < div class=" form-group <? php echo (! empty($price_err))? 'has-error': ''; ? > " > < label> Цена< /label> < input type=" text" name=" VR_Base_D_price" class=" form-control" value=" <? php echo $price; ? > " > < span class=" help-block" > <? php echo $price_err;? > < /span> < /div> < input type=" submit" class=" btn btn-primary" value=" Подтвердить" > < a href=" login_welcome. php" class=" btn btn-default" > Отмена< /a> < /form> < /div> < /div> < /div> < /div> < /body> < /html> Пример создания новой записи в таблице представлен на рис. 10. Рис. 10. Форма создания новой записи в таблице 3. 2. 2. Программная реализация базовой функции Read() Добавим файлы создания новых записей средств освещения автомобиля, учитывая роль пользователя. На примере создания новой записи исполняемый PHP-код будет выглядеть следующим образом:
<? php // Check existence of id parameter before processing further if(isset($_GET[" id" ]) & & ! empty(trim($_GET[" id" ]))) { // Include config file require_once " login_config. php";
// Prepare a select statement $sql = " SELECT * FROM VR_Base_Carreceiver WHERE id =? ";
if($stmt = mysqli_prepare($link, $sql)) { // Bind variables to the prepared statement as parameters mysqli_stmt_bind_param($stmt, " i", $param_id);
// Set parameters $param_id = trim($_GET[" id" ]);
// Attempt to execute the prepared statement if(mysqli_stmt_execute($stmt)){ $result = mysqli_stmt_get_result($stmt);
if(mysqli_num_rows($result) == 1) { /* Fetch result row as an associative array. Since the result set contains only one row, we don't need to use while loop */ $row = mysqli_fetch_array($result, MYSQLI_ASSOC);
// Retrieve individual field value $name = $row[" name" ]; $brand = $row[" brand" ]; $light = $row[" Light" ]; $TypeOfDetail = $row[" TypeOfDetail" ]; $Waterproof = $row[" Waterproof" ]; $Material = $row[" Material" ]; $price = $row[" price" ]; } else { // URL doesn't contain valid id parameter. Redirect to error page header(" location: error. php" ); exit(); }
} else { echo " Oops! Something went wrong. Please try again later. "; } }
// Close statement mysqli_stmt_close($stmt);
// Close connection mysqli_close($link); } else { // URL doesn't contain id parameter. Redirect to error page header(" location: CRUD_error. php" ); exit(); } ? > <! DOCTYPE html> < html lang=" en" > < head> < meta charset=" UTF-8" > < title> View Record< /title> < link rel=" stylesheet" href=" https: //maxcdn. bootstrapcdn. com/bootstrap/3. 3. 7/css/bootstrap. css" > < style type=" text/css" > . wrapper { width: 500px; margin: 0 auto; } < /style> < /head> < body> < div class=" wrapper" > < div class=" container-fluid" > < div class=" row" > < div class=" col-md-12" > < div class=" page-header" > < h1> View Record< /h1> < /div> < div class=" form-group" > < label> Name< /label> < p class=" form-control-static" > <? php echo $row[" VR_Base_D_name" ]; ? > < /p> < /div> < div class=" form-group" > < label> Brand< /label> < p class=" form-control-static" > <? php echo $row[" VR_Base_D_brand" ]; ? > < /p> < /div> < div class=" form-group" > < label> Light< /label> < p class=" form-control-static" > <? php echo $row[" VR_Base_D_Light" ]; ? > < /p> < /div> < div class=" form-group" > < label> TypeOfDetail< /label>
< p class=" form-control-static" > <? php echo $row[" VR_Base_D_TypeOfDetail" ]; ? > < /p> < /div> < div class=" form-group" > < label> Waterproof< /label> < p class=" form-control-static" > <? php echo $row[" VR_Base_D_Waterproof" ]; ? > < /p> < /div> < div class=" form-group" > < label> Material< /label> < p class=" form-control-static" > <? php echo $row[" VR_Base_D_Material" ]; ? > < /p> < /div> < div class=" form-group" > < label> Price< /label> < p class=" form-control-static" > <? php echo $row[" VR_Base_D_price" ]; ? > < /p> < /div> < p> < a href=" login_welcome. php" class=" btn btn-primary" > Back< /a> < /p> < /div> < /div> < /div> < /div> < /body> < /html> Пример просмотра записи в таблице представлен на рис. 11.
Рис 11. Форма просмотра записи в таблице 3. 2. 3. Программная реализация базовой функции Delete() Удалим файлы записей средства освещения автомобиля, учитывая роль пользователя. На примере удаления записи исполняемый PHP-код будет выглядеть следующим образом: <? php session_start(); // начинаем новую сессию
// извлекаем переменные из сессии, если были установлены $link = $_SESSION[" link" ]; $username = $_SESSION[" username" ]; $role_id = $_SESSION[" role_id" ]; $role_name = $_SESSION[" role_name" ];
// Include config file (подключаем файлы) require_once " login_role. php"; echo " CRUD_delete. php, username: ". $username. " < br/> "; echo " CRUD_delete. php, role_id: ". $role_id. " < br/> "; echo setrole_by_username($username, $link); include('. /login_config. php'); echo " CRUD_delete. php, role_id: ". $role_id. " < br/> "; $thread_id = mysqli_thread_id($link); echo "!!! CRUD_delete. php: thread_id=". $thread_id. " < br/> ";
// Проверка роли: 1 - user, 2 - admin if($role_id! == '1') // если не админ (1 - user, 2 - admin, иначе guest) { // запоминаем ошибку для отображения в файле CRUD_error. php $_SESSION[" crud_error" ] = " Недостаточно прав для удаления данных!!! "; header(" location: CRUD_error. php" ); exit; }
// пытаемся удалить данные ///////////////////////////////////// if(isset($_POST[" id" ]) & & ! empty($_POST[" id" ])) { // Include config file (подключаем файл конфигурации) require_once " login_config. php";
// Prepare a delete statement (подготавливаем запрос) $sql = " DELETE FROM VR_Base_Carreceiver WHERE id =? ";
if($stmt = mysqli_prepare($link, $sql)) { // Bind variables to the prepared statement as parameters mysqli_stmt_bind_param($stmt, " i", $param_id);
// Set parameters $param_id = trim($_POST[" id" ]);
// Attempt to execute the prepared statement if(mysqli_stmt_execute($stmt)) { // Records deleted successfully. Redirect to landing page header(" location: login_welcome. php" ); exit(); } else { echo " Oops! Something went wrong. Please try again later. "; } }
// Close statement mysqli_stmt_close($stmt);
// Close connection mysqli_close($link); } else { // Check existence of id parameter if(empty(trim($_GET[" id" ]))) { // URL doesn't contain id parameter. Redirect to error page header(" location: CRUD_error. php" ); exit(); } } ? > <! DOCTYPE html> < html lang=" en" > < head> < meta charset=" UTF-8" > < title> View Record< /title> < link rel=" stylesheet" href=" https: //maxcdn. bootstrapcdn. com/bootstrap/3. 3. 7/css/bootstrap. css" > < style type=" text/css" > . wrapper { width: 500px; margin: 0 auto; } < /style> < /head> < body> < div class=" wrapper" > < div class=" container-fluid" > < div class=" row" > < div class=" col-md-12" > < div class=" page-header" > < h1> Delete Record< /h1> < /div> < form action=" <? php echo htmlspecialchars($_SERVER[" PHP_SELF" ]); ? > " method=" post" > < div class=" alert alert-danger fade in" > < input type=" hidden" name=" id" value=" <? php echo trim($_GET[" id" ]); ? > " /> < p> Are you sure you want to delete this record? < /p> < br> < p> < input type=" submit" value=" Yes" class=" btn btn-danger" > < a href=" login_welcome. php" class=" btn btn-default" > No< /a> < /p> < /div> < /form> < /div> < /div> < /div> < /div> < /body> < /html> Пример удаления записи в таблице представлен на рис 12.
Рис 12. Форма удаления записи в таблице
Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|