Как мне сделать фильтрацию по категориям, из базы данных (mysql)?

Ссылка скопирована
PHP
1 ответ

У меня есть база данных, в ней есть отдельный столбец "categoria"
Мне нужно сделать на сайте сортировку по этим категориям, чтобы при нажатии на одну, появлялись товары с указанной в базе данных категории:

Как мне сделать фильтрацию по категориям, из базы данных (mysql)?

<div class="second_nav">         <div class="content">             <div class="categorii" name = 'categoria'>                 <div class="all_cateroria">                     <a href="index.php?categoria=all">Все</a>                 </div>                 <div class="fortnite_categoria">                     <a href="index.php?categoria=fort">Fortnite</a>                 </div>                 <div class="brawl_categoria">                     <a href="index.php?categoria=brawl">Brawl Stars</a>                 </div>             </div>             <div class = 'input'>                 <input type="text" placeholder="Поиск...">             </div>         </div>     </div>

<div class="second_nav"> <div class="content"> <div class="categorii" name = 'categoria'> <div class="all_cateroria"> <a href="index.php?categoria=all">Все</a> </div> <div class="fortnite_categoria"> <a href="index.php?categoria=fort">Fortnite</a> </div> <div class="brawl_categoria"> <a href="index.php?categoria=brawl">Brawl Stars</a> </div> </div> <div class = 'input'> <input type="text" placeholder="Поиск..."> </div> </div> </div>

Как мне сделать фильтрацию по категориям, из базы данных (mysql)?

Дополнительно:

100500 тегов не надо, один всего, тот на котором хотите отсортировать список php или js

  • Делаете запрос к серверу, и все, дальше там в любой нормальной ORM, это делается за 5 минут
  • Ну а код где вы выбираете из базы где?
  • Ответы:

    Для начала надо выучить русский язык и узнать, что означает слово "сортировка"
    Потом надо выучить SQL, чтобы узнать, каким образом можно ограничить выборку по условию.
    Потом надо выучить HTML чтобы узнать, как можно передать выбор пользователя на сервер
    Потом надо выучить РНР чтобы узнать, как можно взять переданное из HTML значение и подставить его в SQL запрос, выполнить этот запрос, и вывести результат.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Мария Код Ответ

    Для реализации фильтрации по категориям из базы данных MySQL вам потребуется использовать оператор SQL WHERE с условием по категории. Ниже приведен пример кода на PHP, который поможет вам реализовать данную функциональность.

    // Подключение к базе данных
    $host = 'localhost';
    $username = 'username';
    $password = 'password';
    $database = 'database';
     
    $connection = mysqli_connect($host, $username, $password, $database);
     
    // Проверка соединения
    if (!$connection) {
        die('Ошибка подключения: ' . mysqli_connect_error());
    }
     
    // Получение выбранных категорий из формы
    $selectedCategories = $_POST['categories'];
     
    // Формирование SQL запроса с условием по выбранным категориям
    $sql = "SELECT * FROM products";
     
    if (!empty($selectedCategories)) {
        $sql .= " WHERE category IN (";
     
        foreach($selectedCategories as $category) {
            $sql .= "'" . $category . "',";
        }
     
        $sql = rtrim($sql, ',') . ")";
    }
     
    // Выполнение SQL запроса
    $result = mysqli_query($connection, $sql);
     
    // Обработка результатов запроса
    if (mysqli_num_rows($result) > 0) {
        while($row = mysqli_fetch_assoc($result)) {
            echo "ID: " . $row['id'] . " - Название: " . $row['name'] . " - Категория: " . $row['category'] . "<br>";
        }
    } else {
        echo "Нет результатов";
    }
     
    // Закрытие соединения
    mysqli_close($connection);

    // Подключение к базе данных $host = 'localhost'; $username = 'username'; $password = 'password'; $database = 'database'; $connection = mysqli_connect($host, $username, $password, $database); // Проверка соединения if (!$connection) { die('Ошибка подключения: ' . mysqli_connect_error()); } // Получение выбранных категорий из формы $selectedCategories = $_POST['categories']; // Формирование SQL запроса с условием по выбранным категориям $sql = "SELECT * FROM products"; if (!empty($selectedCategories)) { $sql .= " WHERE category IN ("; foreach($selectedCategories as $category) { $sql .= "'" . $category . "',"; } $sql = rtrim($sql, ',') . ")"; } // Выполнение SQL запроса $result = mysqli_query($connection, $sql); // Обработка результатов запроса if (mysqli_num_rows($result) &gt; 0) { while($row = mysqli_fetch_assoc($result)) { echo "ID: " . $row['id'] . " - Название: " . $row['name'] . " - Категория: " . $row['category'] . "<br>"; } } else { echo "Нет результатов"; } // Закрытие соединения mysqli_close($connection);

    В данном примере мы сначала подключаемся к базе данных MySQL, затем получаем выбранные категории из формы (предполагается, что они передаются в виде массива), формируем SQL запрос с условием WHERE по выбранным категориям и выполняем его. После этого выводим результаты запроса.

    Не забудьте заменить 'localhost', 'username', 'password', 'database' на ваши реальные данные для подключения к базе данных. Также убедитесь, что структура вашей таблицы и названия полей соответствуют используемым в коде.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно