<MyRusakov.ru />

Создание игр на Unreal Engine 5

Создание игр на Unreal Engine 5

Данный курс научит Вас созданию игр на Unreal Engine 5. Курс состоит из 12 модулей, в которых Вы с нуля освоите этот движок и сможете создавать самые разные игры.

В курсе Вы получите всю необходимую теоретическую часть, а также увидите массу практических примеров. Дополнительно, почти к каждому уроку идут упражнения для закрепления материала.

Помимо самого курса Вас ждёт ещё 8 бесплатных ценных Бонусов: «Chaos Destruction», «Разработка 2D-игры», «Динамическая смена дня и ночи», «Создание динамической погоды», «Создание искусственного интеллекта для NPC», «Создание игры под мобильные устройства», «Создание прототипа RPG с открытым миром» и и весь курс «Создание игр на Unreal Engine 4» (актуальный и в 5-й версии), включающий в себя ещё десятки часов видеоуроков.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Фильтр поиска на PHP

Фильтр поиска на PHP

Меня иногда просят рассказать, как делаются сложные фильтры поиска. Например, как он сделан на том же Яндекс.Маркете, где может быть сотня различных параметров отбора товаров? В этой статье я расскажу, как такое делается, ведь тут нет абсолютно ничего сложного. Всё это делается по единому принципу, о котором читайте дальше.

Для начала должна быть таблица, по которой будет идти поиск. Пусть это будет упрощённая таблица для ноутбуков:

  • id - уникальный идентификатор.
  • price - цена.
  • manufacturer - производитель.
  • wi-fi - наличие Wi-Fi.

Теперь разберём форму поиска:

<form name="form" action="" method="post">
  <table>
    <tr>
      <td>Цена от:</td>
      <td><input type="text" name="price_start" /> рублей</td>
    </tr>
    <tr>
      <td>Цена до:</td>
      <td><input type="text" name="price_end" /> рублей</td>
    </tr>
    <tr>
      <td colspan="2">Производитель</td>
    </tr>
    <tr>
      <td>Apple</td>
      <td>
        <input type="checkbox" name="manufacturers[]" value="1" />
      </td>
    </tr>
    <tr>
      <td>Acer</td>
      <td>
        <input type="checkbox" name="manufacturers[]" value="2" />
      </td>
    </tr>
    <tr>
      <td>ASUS</td>
      <td>
        <input type="checkbox" name="manufacturers[]" value="3" />
      </td>
    </tr>
    <tr>
      <td>Наличие Wi-Fi:</td>
      <td>
        <input type="checkbox" name="wifi" />
      </td>
    </tr>
    <tr>
      <td colspan="2">
        <input type="submit" name="filter" value="Подобрать ноутбуки" />
      </td>
    </tr>
  </table>
</form>

Думаю, здесь, всё прозрачно. Единственное, что обратите внимание на manufacturers[]. Квадратные скобки означают, что в скрипт попадёт массив со всеми значениями, выбранными пользователем. Чтобы лучше это понять, просто выведите print_r($_POST), тогда Вы всё поймёте.

Теперь разберём скрипт. В целях упрощения скрипта я не стал его усложнять скриптами, отвечающими за безопасность, и ограничился функцией htmlspecialchars(). Однако, в реальности, обязательно надо проверять всё, что приходит от пользователя, используя, например, регулярные выражения и/или встроенные функции проверки переменных на их значение.

Главная задача скрипта - "собрать" SQL-запрос на основе того, что пришло от пользователя:

<?php
  function addWhere($where, $add, $and = true) {
    if ($where) {
      if ($and) $where .= " AND $add";
      else $where .= " OR $add";
    }
    else $where = $add;
    return $where;
  }
  if (!empty($_POST["filter"])) {
    $where = "";
    if ($_POST["price_start"]) $where = addWhere($where, "`price` >= '".htmlspecialchars($_POST["price_start"]))."'";
    if ($_POST["price_end"]) $where = addWhere($where, "`price` <= '".htmlspecialchars($_POST["price_end"]))."'";
    if ($_POST["manufacturers"]) $where = addWhere($where, "`manufacturer` IN (".htmlspecialchars(implode(",", $_POST["manufacturers"])).")");
    if ($_POST["wifi"]) $where = addWhere($where, "`wifi` = '1'");
    $sql = "SELECT * FROM `my_table`";
    if ($where) $sql .= " WHERE $where";
    echo $sql;
  }
?>

Думаю, что с выполнением получившегося запроса и выводом результата проблем возникнуть не должно. Если это не так или в данном скрипте не всё понятно, то Вам тогда однозначно нужно сначала изучить это: http://srs.myrusakov.ru/php.

Как видите, сложные фильтры реализуются в PHP очень просто. Что касается "красивых" скриптов, где двигаются всякие ползунки и сразу меняется результат - это всё то же самое, только запросы отправляются не через форму, а через Ajax, а затем принимается ответ от сервера с результатом, который динамически выводится через чистый JavaScript, либо с использованием jQuery.

Вот по такому принципу делается любой фильтр поиска на PHP.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (6):

malina95 malina95 07.02.2014 12:27:34

Миша, а будут ли статьи про MongoDB? Очень надо. И, есть идея нового курса - асинхронный интернет-магазин на MongoDB и NodeJS! Будет очень поучительно, и это будет первый курс в интернете!

Ответить

tikkiwiki tikkiwiki 12.02.2014 12:09:09

Возможно в скорости и будет.

Ответить

vaverkasuper vaverkasuper 31.05.2014 15:35:07

будет ли урок по созданию фильтрация по парамметрам для каждой категории меню отдельное? все это динамическим путем?

Ответить

SHOPPING SHOPPING 24.11.2014 15:00:05

Добрый день! Вы описали метод, когда в базе вбиты все параметры по столбцам id /price /manufacturer /wi-fi / а, можно ли реализовать фильтрацию при помощи поиска? Если даны к примеру столбцы /id /price и /charakteristiks , а данные /manufacturer и /wi-fi / введены текстом в поле /charakteristiks. Спасибо!

Ответить

kirill.k2709 kirill.k2709 12.12.2019 00:36:12

Здравствуйте! Как реализовать такой фильтр с с двумя select? Можете дать наводку?

Ответить

Shify Shify 23.09.2023 10:09:17

Добрый день всем. Вам в любом случае нужна будет фильтрация не только полей, но и еще фильтрация форм, ссылок URL и т.д. Я не давно тож искал подобное решение но для других целей и нашел статью в интернете где подробно описана функция фильтрации. Правда там на php решение. Здесь https://cryptoxer.ru/forum/url-php-help/ сказано, как это сделать, я дублировать не буду это лишнее. Можете сами подробно изучить статью и полезное для себя получить. Там написан рабочий код, берите и пользуйтесь в своем проекте.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.