Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...