Тема сегодняшнего урока Сортировка и выборка: без нажатия кнопки применить, выполнена языками программирования php и jQuery, также используется база данных mysql.
Данный материал, как я заметил, очень узко рассматривается на других сайтах и приходится изучать мануалы, искать на форумах информацию, чтобы полноценно понимать как устроен данный скрипт, подбирая адаптированный код. Стоит отметить, что сортировка используется на очень многих сайтах и ресурсах, позволяет выбирать нужные нам товары, новости, людей и прочие вещи, которые мы бы хотели конкретно охарактеризовать и найти.
Допустим аналогичный пример, я бы мог привести на сайте Кинозал ТВ, с помощью которого я могу ввести в поиск название фильма, выбрать его год, раздел, формат и нажать кнопочку применить (мы рассмотрим данный скрипт, с кнопкой применить, во втором уроке - Сортировка и выборка с кнопкой применить и выпадет список фильмов или фильм с данным запросом. Также советую посмотреть тему сортировка на PHP и MySQL, там добавлена еще и фильтрация по алфавиту, названию и прочему. Как видим, это очень удобно! Так вот, в этом уроке я научу Вас создавать данный скрипт и встраивать на свой сайт. Данный урок относится к категории среднего класса, поэтому для новичков я бы посоветовал изучить сначала азы программирования на php и javascript, а затем уже приступать к изучению данного урока. Верстка, надеюсь, уже изучена! И так, приступим...
Создаем файл bd.php - подключение к базе данных.
<? $db = mysql_connect ("localhost", "Пользователь", "Пароль"); mysql_select_db ("База данных", $db); if (!$db) echo mysql_error(); ?>
Затем нам потребуются четыре таблицы, которые мы создадим в базе данных mysql:
- Таблица с новостями.
-- -- Структура таблицы `1_news` -- CREATE TABLE IF NOT EXISTS `1_news` ( `id` int(50) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `text` text NOT NULL, `img` varchar(255) NOT NULL, `date` date NOT NULL, `author` int(5) NOT NULL, `cat` int(20) NOT NULL, PRIMARY KEY (`id`), KEY `title` (`title`), FULLTEXT KEY `title_2` (`title`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=30 ;
- Таблица с авторами.
-- -- Структура таблицы `1_author` -- CREATE TABLE IF NOT EXISTS `1_author` ( `id` int(10) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=4 ; -- -- Дамп данных таблицы `1_author` -- INSERT INTO `1_author` (`id`, `title`) VALUES (1, 'Марк'), (2, 'Миша'), (3, 'Илья');
- Таблица с категориями новостей.
-- -- Структура таблицы `1_news_cat` -- CREATE TABLE IF NOT EXISTS `1_news_cat` ( `id` int(10) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=4 ; -- -- Дамп данных таблицы `1_news_cat` -- INSERT INTO `1_news_cat` (`id`, `title`) VALUES (1, 'Компьютеры'), (2, 'Машины'), (3, 'Мотоциклы');
- Таблица с навигацией.
-- -- Структура таблицы `1_navigation` -- CREATE TABLE IF NOT EXISTS `1_navigation` ( `id` int(10) NOT NULL AUTO_INCREMENT, `news` int(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ; -- -- Дамп данных таблицы `1_navigation` -- INSERT INTO `1_navigation` (`id`, `news`) VALUES (1, 5);
И так, таблицы созданы, начнем реализовывать файл news.php. Стоит отметить, что вся выборка сохраняется в COOKIE, поэтому скрипт работает данным образом. Есть и другой вариант, его можно рассмотреть, как сохранение в SESSION, ну мы не будем изучать этот пример, а перейдем непосредственно к сортировке с использованием COOKIE.
<? header('Content-Type: text/html; charset=windows-1251'); //вывод кодировки include ("bd.php"); //подключение к базе данных /*Установка в cookie*/ $cat = ''; $author = ''; $date = ''; $search_string = ''; if (isset($_GET['cat'])) { $cat = $_GET['cat']; setcookie("cat", $_GET['cat'], time()+3600); } elseif (isset($_COOKIE['cat'])) $cat = $_COOKIE['cat']; if (isset($_GET['author'])) { $author = $_GET['author']; setcookie("author", $_GET['author'], time()+3600); } elseif (isset($_COOKIE['author'])) $author = $_COOKIE['author']; if (isset($_GET['date'])) { $date = $_GET['date']; setcookie("date", $_GET['date'], time()+3600); } elseif (isset($_COOKIE['date'])) $date = $_COOKIE['date']; if (isset($_GET['search_string'])) { $search_string = $_GET['search_string']; setcookie("search_string", $_GET['search_string'], time()+3600); } elseif (isset($_COOKIE['search_string'])) $search_string = $_COOKIE['search_string']; $page = (isset($_GET['page'])) ? intval($_GET['page']) : 1; ?>
Далее подключаем три файла: один путь к стилям - style.css, другие - подключение файла javascript jquery-1.7.2.js и наш файл, который мы чуть позже создадим sort.js (он собственно и будет выполнять функции нашей сортировки). Выводим все разделы сортировки: категорию, автора, год, выбор страниц, поиск.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Сортировка и выборка | php & mysql</title> <link rel="stylesheet" type="text/css" href="style.css" /> <script type="text/javascript" src="js/jquery-1.7.2.js"></script> <script type="text/javascript" src="js/sort.js"></script> </head> <body> <form method="post" onsubmit="return false;" autocomplete="off"> <table class='width onetable'> <tr> <td> <img src='http://www.roothelp.ru/logo.png'/> </td> <td> <p class='rh_webstudia'> Урок подготовлен web-студией roothelp.ru, благодарим за внимание! </p> <p class='rh_title'> Сортировка и выборка | php & mysql </p> </td> </tr> </table> <table class='width'> <tr> <td valign='top' width='400'> <?php //Выборка из таблицы 1_navigation поля news, в котором содержится число вывода новостей на страницу $result77 = mysql_query("SELECT news FROM 1_navigation", $db); $myrow77 = mysql_fetch_array($result77); $limit = $myrow77["news"]; //установка определенного лемита вывода страниц из ячейки news if ($_COOKIE['limit']) $limit = $_COOKIE['limit']; //выборка категории для новостей echo"<label class='sort_title'>Категории</label> <div> <select name='cat' id='cat'><option value=''>Не важно</option>"; $news_rh_cat = mysql_query ("SELECT id, title FROM 1_news_cat"); if(!$news_rh_cat) { echo"<p></p>"; exit (mysql_error()); } if (mysql_num_rows($news_rh_cat)>0) { $news_cat = mysql_fetch_array($news_rh_cat); do { ?> <option value="<?php echo $news_cat["id"];?>" <? if ($news_cat["id"]==$cat) echo " selected"; ?>> <?php echo $news_cat["title"]."";?></option> <?php } while ($news_cat = mysql_fetch_array($news_rh_cat)); } else { } echo" </select> </div> <br>"; ?> </td> <td valign='top' width='400'> <?php //Выборка автора echo"<label class='sort_title'>Автор</label> <div> <select name='author' id='author'>"; $authorsql = mysql_query ("SELECT id, title FROM 1_author"); if(!$authorsql) { echo"<p></p>"; exit (mysql_error()); } if (mysql_num_rows($authorsql)>0) { $author1 = mysql_fetch_array($authorsql); ?><option value="">Не важно</option><?php do { ?><option value='<?=$author1['id']?>'<? if ($author1['id']==$author) echo " selected"; ?>><a href='news.php?author=<?=$author1['id']?>'> <?=$author1['title']?></a></option><? } while ($author1 = mysql_fetch_array($authorsql)); } else { } echo" </select> </div> <br>"; ?> </td> <td valign='top' width='400'> <?php //Выборка года echo"<label class='sort_title'>Год</label> <div> <select name='date' id='date'>"; ?><option value="">Не важно</option><?php $sqldate = mysql_query ("SELECT id, date FROM 1_news ORDER BY date DESC"); $years = mysql_query ("SELECT distinct YEAR(date) FROM 1_news ORDER BY date DESC"); if(!$sqldate) { exit (mysql_error()); } if (mysql_num_rows($sqldate)>0) { $author1 = mysql_fetch_array($sqldate); while ($year = mysql_fetch_array($years)) { ?><option value='<?=$year[0]?>'<? if ($year[0]==$date) echo " selected"; ? >><?=$year[0]?></option><? } } else { } echo" </select> </div> <br>"; ?> </td> </tr> <tr> <td width='900' colspan='2'> <label class='sort_title'>Поиск</label> <br> <input id="search_string" type="text" class="sort_search" name="search_string" value="<?=$search_string?>"> </td> <td width='20'> <label class='sort_title'>Страниц</label> <? $limits = array(1000 => 'Все страницы', 1 => 1, 3=>3, 5=>5, 10 => 10, 25=> 25, 50 => 50) ?> <div> <select name='limit' id='limit'> <? //Выборка кол-во страниц навигации foreach ($limits as $k => $v) { $sel = ''; if ($limit == $k) $sel =" selected"; echo "<option value='".$k."'".$sel.">".$v."</option>"; } ?> </select> </div> </td> </tr> <tr> <td colspan='5' valign='top' class='width'>
Теперь скрипт навигации, выводим его. Будьте внимательны, не пропустите сам идентификатор перевода id="results":
<? echo"<br>"; echo"<label class='sort_title'>Новости</label>"; echo"<br><br>"; /*Скрипт навигации*/ $query = "SELECT COUNT(*) FROM 1_news"; $wh = array(); if ($cat) $wh[] = "`cat`='".$cat."'"; if ($author) $wh[] = "`author`='".$author."'"; if ($date) $wh[] = "`date` LIKE '%".$date."%'"; if ($search_string) $wh[] = "`title` LIKE '%".$search_string."%'"; if (count($wh)>0) $query.= " WHERE ". implode(" AND ",$wh); $result00 = mysql_query($query); $temp = mysql_fetch_array($result00); echo '<div id="results" name="results">'; // перенаправление на php файл results, с целью вывода сортировки $total_pages = $temp[0]; $stages = 3; if($page) $start = ($page - 1) * $limit; else $start = 0; if ($page == 0) $page = 1; $prev = $page - 1; $next = $page + 1; $lastpage = ceil($total_pages/$limit); $LastPagem1 = $lastpage - 1; $paginate = ''; if($lastpage > 1) { $paginate .= "<div class='paginate'>"; if ($page > 1){$paginate.= "<a href='$targetpage?page=$prev'> Предыдущая</a>";} else{$paginate.= "<span class='disabled'>Предыдущая</span>";} if ($lastpage < 7 + ($stages * 2)) { for ($counter = 1; $counter <= $lastpage; $counter++) { if ($counter == $page){ $paginate.= "<span class='current'>$counter</span>"; }else{ $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";} } } elseif($lastpage > 5 + ($stages * 2)) { if($page < 1 + ($stages * 2)) { for ($counter = 1; $counter < 4 + ($stages * 2); $counter++) { if ($counter == $page){ $paginate.= "<span class='current'>$counter</span>"; }else{ $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";} } $paginate.= "..."; $paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>"; $paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>"; } elseif($lastpage - ($stages * 2) > $page && $page > ($stages * 2)) { $paginate.= "<a href='$targetpage?page=1'>1</a>"; $paginate.= "<a href='$targetpage?page=2'>2</a>"; $paginate.= "..."; for ($counter = $page - $stages; $counter <= $page + $stages; $counter++) { if ($counter == $page){ $paginate.= "<span class='current'>$counter</span>"; }else{ $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";} } $paginate.= "..."; $paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>"; $paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>"; } else { $paginate.= "<a href='$targetpage?page=1'>1</a>"; $paginate.= "<a href='$targetpage?page=2'>2</a>"; $paginate.= "..."; for ($counter = $lastpage - (2 + ($stages * 2)); $counter <= $lastpage; $counter++) { if ($counter == $page){ $paginate.= "<span class='current'>$counter</span>"; }else{ $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";} } } } if ($page < $counter - 1){ $paginate.= "<a href='$targetpage?page=$next'>Следующая</a>"; }else{ $paginate.= "<span class='disabled'>Следующая</span>"; } $paginate.= "</div>"; } echo $paginate; //вывод навигации echo"<br>";
Затем выводим новости.
//начало запроса выборки из базы данных $query = "SELECT 1_news.id, 1_news.title, 1_news.img, 1_news.date, substr(1_news.text,1,600) as text, (SELECT 1_author.title FROM 1_author WHERE 1_author.id=1_news.author) AS author, (SELECT 1_news_cat.title FROM 1_news_cat WHERE 1_news_cat.id=1_news.cat) AS cat FROM 1_news"; if ($cat!=NULL) $query.= " WHERE `cat` = '".$cat."' "; else $query .= " WHERE 1=1 "; if($author != null){$query .= "and author='$author'";} if($date != null){$query .= " and date like '%$date%'";} if($search_string != null){$query .= " and title like '%$search_string%'";} $query .= " ORDER BY date DESC LIMIT $start, $limit"; $news_rh = mysql_query ($query, $db); if (!$news_rh) { echo "<p>При данной выборке нет новостей в базе! Попробуйте выбрать с другими параметрами!</p>"; exit(mysql_error()); } if (mysql_num_rows($news_rh) > 0) { $news = mysql_fetch_array($news_rh); do { printf(" <table cellspacing='0' cellpadding='0' class='table_sort'> <tr> <td colspan='2'> <p class='table_title'>%s</p> </td> <td> </td> </tr> <tr> <td valign='top'> <img src='%s' class='table_img'/> </td> <td valign='top'> <span class='table_sort_title'>Категория: </span> <span class='table_sort_answer'>%s</span><br> <span class='table_sort_title'>Автор: </span> <span class='table_sort_answer'>%s</span><br> <span class='table_sort_title'>Создана: </span> <span class='table_sort_answer'>%s</span><br> </td> </tr> <tr> <td valign='top' colspan='2'> <div class='table_text'>%s</div> </td> </tr> </table>", $news["title"], $news["img"], $news["cat"], $news["author"], $news["date"], $news["text"]); } while ($news = mysql_fetch_array($news_rh)); } echo"</div>"; ?>
Тут, пожалуй все просто, сложностей особых нет, единственное, что стоит объяснить, это про поиск, который работает с помощью функции mysql_escape_string( iconv("utf-8", "windows-1251", лимит на вывод новостей устанавливается тут $limit = ($_POST['limit']) ? intval($_POST['limit']) : 5; , и так сам код:
И так, с файлом news.php мы успешно справились, теперь перейдем к файлу results.php.
<?php header('Content-Type: text/html; charset=windows-1251'); //вывод кодировки include ("bd.php"); //подключение к базе данных /*Применение технологии cookie*/ $cat = ($_POST['cat']) ? intval($_POST['cat']) : ''; $author = ($_POST['author']) ? intval($_POST['author']) : '';; $date = ($_POST['date']) ? intval($_POST['date']) : '';; $search_string = ($_POST['search_string']) ? mysql_escape_string( iconv("utf-8", "windows-1251", $_POST['search_string'])) : ''; $limit = ($_POST['limit']) ? intval($_POST['limit']) : 5; setcookie("cat", $cat, time()+3600); setcookie("author", $author, time()+3600); setcookie("date", $date, time()+3600); setcookie("search_string", $search_string, time()+3600); setcookie("limit", $limit, time()+3600); $page = (isset($_GET['page'])) ? intval($_GET['page']) : 1; $query = "SELECT COUNT(*) FROM 1_news"; $wh = array(); if ($cat) $wh[] = "`cat`='".$cat."'"; if ($author) $wh[] = "`author`='".$author."'"; if ($date) $wh[] = "`date` LIKE '%".$date."%'"; if ($search_string) $wh[] = "`title` LIKE '%".$search_string."%'"; if (count($wh)>0) $query.= " WHERE ". implode(" AND ",$wh); $result00 = mysql_query($query); $temp = mysql_fetch_array($result00); $total_pages = $temp[0]; $stages = 3; if($page) $start = ($page - 1) * $limit; else $start = 0; if ($page == 0) $page = 1; $prev = $page - 1; $next = $page + 1; $lastpage = ceil($total_pages/$limit); $LastPagem1 = $lastpage - 1; $paginate = ''; if($lastpage > 1) { $paginate .= "<div class='paginate'>"; if ($page > 1){$paginate.= "<a href='$targetpage?page=$prev'> Предыдущая</a>";} else{$paginate.= "<span class='disabled'>Предыдущая</span>";} if ($lastpage < 7 + ($stages * 2)) { for ($counter = 1; $counter <= $lastpage; $counter++) { if ($counter == $page){ $paginate.= "<span class='current'>$counter</span>"; }else{ $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";} } } elseif($lastpage > 5 + ($stages * 2)) { if($page < 1 + ($stages * 2)) { for ($counter = 1; $counter < 4 + ($stages * 2); $counter++) { if ($counter == $page){ $paginate.= "<span class='current'>$counter</span>"; }else{ $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";} } $paginate.= "..."; $paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>"; $paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>"; } elseif($lastpage - ($stages * 2) > $page && $page > ($stages * 2)) { $paginate.= "<a href='$targetpage?page=1'>1</a>"; $paginate.= "<a href='$targetpage?page=2'>2</a>"; $paginate.= "..."; for ($counter = $page - $stages; $counter <= $page + $stages; $counter++) { if ($counter == $page){ $paginate.= "<span class='current'>$counter</span>"; }else{ $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";} } $paginate.= "..."; $paginate.= "<a href='$targetpage?page=$LastPagem1'>$LastPagem1</a>"; $paginate.= "<a href='$targetpage?page=$lastpage'>$lastpage</a>"; } else { $paginate.= "<a href='$targetpage?page=1'>1</a>"; $paginate.= "<a href='$targetpage?page=2'>2</a>"; $paginate.= "..."; for ($counter = $lastpage - (2 + ($stages * 2)); $counter <= $lastpage; $counter++) { if ($counter == $page){ $paginate.= "<span class='current'>$counter</span>"; }else{ $paginate.= "<a href='$targetpage?page=$counter'>$counter</a>";} } } } if ($page < $counter - 1){ $paginate.= "<a href='$targetpage?page=$next'>Следующая</a>"; }else{ $paginate.= "<span class='disabled'>Следующая</span>"; } $paginate.= "</div>"; } echo $paginate; //вывод навигации echo"<br>"; //начало запроса выборки из базы данных $query = "SELECT 1_news.id, 1_news.title, 1_news.img, 1_news.date, substr(1_news.text,1,600) as text, (SELECT 1_author.title FROM 1_author WHERE 1_author.id=1_news.author) AS author, (SELECT 1_news_cat.title FROM 1_news_cat WHERE 1_news_cat.id=1_news.cat) AS cat FROM 1_news"; if ($cat!=NULL) $query.= " WHERE `cat` = '".$cat."' "; else $query .= " WHERE 1=1 "; if($author != null){$query .= "and author='$author'";} if($date != null){$query .= " and date like '%$date%'";} if($search_string != null){$query .= " and title like '%$search_string%'";} $query .= " ORDER BY date DESC LIMIT $start, $limit"; $news_rh = mysql_query ($query, $db); if (!$news_rh) { echo "<p>При данной выборке нет новостей в базе! Попробуйте выбрать с другими параметрами!</p>"; exit(mysql_error()); } if (mysql_num_rows($news_rh) > 0) { $news = mysql_fetch_array($news_rh); do { printf(" <table cellspacing='0' cellpadding='0' class='table_sort'> <tr> <td colspan='2'> <p class='table_title'>%s</p> </td> <td> </td> </tr> <tr> <td valign='top'> <img src='%s' class='table_img'/> </td> <td valign='top'> <span class='table_sort_title'>Категория: </span><span class='table_sort_answer'>%s </span><br> <span class='table_sort_title'>Автор: </span> <span class='table_sort_answer'>%s</span><br> <span class='table_sort_title'>Создана: </span><span class='table_sort_answer'>%s</span><br> </td> </tr> <tr> <td valign='top' colspan='2'> <div class='table_text'>%s</div> </td> </tr> </table>", $news["title"], $news["img"], $news["cat"], $news["author"], $news["date"], $news["text"]); } while ($news = mysql_fetch_array($news_rh)); } else { echo "<p>При данной выборке нет новостей в базе! Попробуйте выбрать с другими параметрами!</p>"; } echo"</div>"; ?>
Добавим стили файл style.css:
/*Урок подготовлен web-студией roothelp.ru*/ /*Основные стили*/ .,html,img, body { margin: 0px; padding: 0px border: 0px; } .width { width: 1000px; } .onetable { background: #6eaaff; height: 100px; } .sort_search { width: 800px; } .sort_title { color: blue; } .table_sort { border-top: 1px dotted black; padding: 5px; width: 800px; } .table_title { font-size: 18px; color: grey; font-weight: bold; padding-top: 10px; padding-bottom: 20px; } .table_img { width: 100px; } .table_sort_title { font-size: 14px; color: black; font-weight: bold; } .table_sort_answer { font-size: 14px; color: black; } .table_text { padding-top: 10px; width: 800px; text-align: justify; font-size: 14px; color: black; } /*Навигация*/ .paginate { font-family:Arial, Helvetica, sans-serif; padding: 3px; margin: 3px; } .paginate a { padding:2px 5px 2px 5px; margin:2px; border:1px solid #999; text-decoration:none; color: #666; } .paginate a:hover, .paginate a:active { border: 1px solid #999; color: #000; } .paginate span.current { margin: 2px; padding: 2px 5px 2px 5px; border: 1px solid #999; font-weight: bold; background-color: #999; color: #FFF; } .paginate span.disabled { padding:2px 5px 2px 5px; margin:2px; border:1px solid #eee; color:#DDD; } li{ padding:4px; margin-bottom:3px; background-color:#FCC; list-style:none;} ul{ margin:6px; padding:0px; }
Давайте теперь создадим две папки, одну js и img.
Сначала начнем с js, в ней как мы уже говорили будут хранится два файла jquery-1.7.2.js сам код файла sort.js:
(function ($) { function search(){ var cat = $("#cat").val(); var author = $("#author").val(); var date = $("#date").val(); var search_string = $("#search_string").val(); var limit = $("#limit").val(); var sort = { url: "results.php", type: "POST", data: "cat=" + cat + "&author=" + author + "&date=" + date + "&limit= " + limit + "&search_string= " + search_string, dataType: "html", cache: false, success: function(data) { $("#results").html(data); }, error: function() { $("#results").html('error occured'); } }; $.ajax(sort); }; $(document).ready(function(){ $("select#cat").change(function(){ search(); }); $("select#author").change(function(){ search(); }); $("select#date").change(function(){ search(); }); $("#search_string").keyup(function(){ search(); }); $("#limit").change(function(){ search(); }); }); })(jQuery);
Как мы видим, sort.js работает с файлом results.php и с идентификатором id="results", который был подключен для сортировки в файле news.php. Теперь в папку img мы загрузим картинки самих новостей.
Ну что ж, надеюсь данный урок Вам помог в реализации у себя на сайте, либо в каком-нибудь другом примере, где можно его применить. В следующем, уроке по "сортировке и выборке", я объясню Вам как можно создать аналогичный скрипт, только с кнопкой "применить".
Спасибо за внимание, всем удачи!