Member 14513655 Ответов: 1

Sql checkbox search, который отображает список элементов, находящихся в моей базе данных


Я настраиваю страницу каталога, которая отображает различные тренировки в зависимости от того, что ищется через текстовое поле(которое работает) и/или флажки(не работает)

Я не знаю, возможно ли это без кнопки отправки, но я бы хотел, чтобы она искала элементы, а также позволяла ей искать несколько флажков

Я пытался искать в интернете помощь, но не могу найти ничего, что связано с моим проектом.

Что я уже пробовал:

РНР:
$sqlBrowse = "SELECT * FROM workoutLibrary
                WHERE name LIKE :findInName
                OR bodyPart  LIKE :findInBodyPart
                OR muscleGroup LIKE :findInMuscleGroup
                OR equipment LIKE :findInEquipment
                ORDER BY name";

$searchTerm = '';
$search = '%';
if (isset($_POST['search'])) {
    $searchTerm = $_POST['search'];
    $search = '%' . $searchTerm . '%';
    $stmt = $conn->prepare($sqlBrowse);
    $stmt->bindParam(":findInName", $search);
    $stmt->bindParam(":findInBodyPart", $search);
    $stmt->bindParam(":findInMuscleGroup", $search);
    $stmt->bindParam(":findInEquipment", $search);
    $stmt->execute();
    // store results in array
    $exercises = $stmt->fetchAll();
}
else if (isset($_POST['checklist'])) {
    $searchTerm = $_POST['checklist'];
    $search = '%' . $searchTerm . '%';

    $stmt = $conn->prepare($sqlBrowse);
    $stmt->bindParam(":findInEquipment", $search);
    $stmt->execute();
    $exercises = $stmt->fetchAll();
}

HTML:
<form action="directory.php" method="post">
   <input type="checkbox" name="checklist[]" class="check" value="Dumbell"> Dumbbell<br>
   <input type="checkbox" name="checklist[]" class="check" value="kettlebell"> Kettlebell<br>              
</form>

      <div class="col-sm-10">
          <h1 class="theTitle"> Workout Directory </h1>
            <div class="d-flex flex-wrap">
              <?php
                foreach ($exercises as $exercise) {
               ?>
                <div class="card" id="workoutCard">
                  <div class="card-header"> <?= $exercise->name ?> </div>
                  <div class="card-body">
                      <div class="thumbnail"> </div>
                        <div class="info">
                          <a id="subTitle">Body Parts:</a> <?= $exercise->bodyPart ?><BR>
                          <a id="subTitle">Muscle Group:</a> <?= $exercise->muscleGroup ?><BR>
                          <a id="subTitle">Equipment Used:</a> <?= $exercise->equipment ?>
                        </div>
                  </div>
                </div>
            <?php
            }
            ?>

Моя панель поиска работает отлично, поэтому я не отображал html для нее.
Я новичок, поэтому не знаю, где я ошибся, например, когда два PDO выполняют операторы под одним именем.

Любая помощь или советы будут оценены по достоинству

1 Ответов

Рейтинг:
2

Wonderlawn Artificial Grass

Утверждение PDO кажется правильным. Являются ли поля правильными в вашей базе данных MySQL?