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

Для реализации фильтрации по категориям из базы данных в PHP вам понадобится использовать язык SQL и интегрировать его в ваши PHP-скрипты. Вот пошаговая инструкция:

1. Подключение к базе данных:
Первым шагом необходимо подключиться к базе данных MySQL с помощью функций, предоставляемых PHP. Например, вы можете использовать функцию mysqli_connect() или PDO. Пример кода для подключения к базе данных:

   $servername = "localhost";
   $username = "username";
   $password = "password";
   $dbname = "database_name";

   // Подключение через mysqli
   $conn = mysqli_connect($servername, $username, $password, $dbname);

   // Подключение через PDO
   $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);

2. Получение категорий из базы данных:
Затем вы должны выполнить запрос к базе данных для получения списка категорий. Например:

   $sql = "SELECT * FROM categories";
   $result = mysqli_query($conn, $sql);

   // Если используется mysqli
   while ($row = mysqli_fetch_assoc($result)) {
       echo $row['category_name'];
   }

   // Если используется PDO
   $stmt = $conn->query($sql);
   $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
   foreach ($rows as $row) {
       echo $row['category_name'];
   }

В этом примере мы используем таблицу categories и выбираем все столбцы (SELECT *). Вы можете выбрать только нужные вам столбцы. Далее, мы обрабатываем результаты запроса и выводим названия категорий.

3. Создание фильтра на основе выбранных категорий:
Теперь, когда у нас есть список категорий, можно создать фильтр, выбирающий данные из базы данных на основе выбранных категорий. Для этого мы можем использовать оператор WHERE в нашем SQL-запросе. Например:

   // Предположим, что выбранные категории передаются в массиве $selectedCategories
   $selectedCategories = array(1, 2, 3);

   $sql = "SELECT * FROM products WHERE category_id IN (" . implode(",", $selectedCategories) . ")";
   $result = mysqli_query($conn, $sql);

   // Если используется mysqli
   while ($row = mysqli_fetch_assoc($result)) {
       echo $row['product_name'];
   }

   // Если используется PDO
   $stmt = $conn->query($sql);
   $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
   foreach ($rows as $row) {
       echo $row['product_name'];
   }

В этом примере мы предполагаем, что выбранные категории передаются в массиве $selectedCategories. Мы используем функцию implode() для преобразования массива в строку, которую затем вставляем в наш SQL-запрос с использованием оператора IN. Запрос выбирает все товары из таблицы products, у которых значение столбца category_id содержится в выбранных категориях.

4. Отображение результатов:
Наконец, после выполнения фильтрации и получения результатов запроса, вы можете отобразить выбранные данные на веб-странице. В примерах выше мы просто выводили имя категории или имя товара, но вы можете настроить вывод в соответствии с вашими потребностями и требованиями вашего проекта.

Это основной процесс фильтрации по категориям из базы данных в PHP. Разумеется, в вашем проекте могут быть дополнительные требования и функционал, такие как постраничная навигация или сортировка результатов, но эти шаги служат основой для реализации фильтрации.