Я хочу фильтровать данные в базе данных, используя набор диапазонов. У меня есть флажок внизу.
<body>
<form id="form" method="post" action="">
<input type="checkbox" name="price1" class="checkbox" <?=(isset($_POST['price'])?' checked':'')?>/> $0 - 5<br>
<input type="checkbox" name="price2" class="checkbox" <?=(isset($_POST['price'])?' checked':'')?>/> $6 - 10<br>
<input type="checkbox" name="price3" class="checkbox" <?=(isset($_POST['price'])?' checked':'')?>/> $11 - 20<br>
</form>
</body>
<script type="text/javascript">
$(function(){
$('.checkbox').on('change',function(){
$('#form').submit();
});
});
</script>
Ниже приведено то, что у меня есть для моего PHP кода
<?php
if (isset($_POST["price1"])){
$query = $conn->query("SELECT * FROM item WHERE price BETWEEN 0 AND 5");
}
if (isset($_POST["price2"])){
$query = $conn->queryn("SELECT * FROM item WHERE price BETWEEN 6 AND 10");
}
if (isset($_POST["price3"])){
$query = $conn->query("SELECT * FROM item WHERE price BETWEEN 11 AND 20");
}
else { $query = $conn->query("SELECT price * FROM item");
}
?>
Когда бы я ни ставил галочку, он ничего не делает, он просто показывает тестовый предмет, который я тяну индивидуально. Приведенный ниже код является всего лишь тестом, чтобы убедиться, что данные извлекаются из базы данных. Прямо сейчас я просто тяну цены в диапазоне от 0 до 5, и это работает. Но приведенный выше код для пользователя, чтобы иметь выбор при выборе ценовых диапазонов, он ничего не сделает. Все помогает.
?php
//get product rows
$query = $conn->query("SELECT * FROM item WHERE price BETWEEN 0 AND 5 ");
if($query->num_rows > 0){
while($row = $query->fetch_assoc()){
?>
<div class="list-item">
<h2><?php echo $row["name"]; ?></h2>
<h4>Price: <?php echo $row["price"]; ?></h4>
</div>
<?php }
}else{
echo 'Product(s) not found';
} ?>
</div>
</div>
Код указан ниже:
<?php
$conn_error = "Could not connect";
// SQL connection credentials
//They are blanked out since it is connected to the server already
$mysql_host = "";
$mysql_user = "";
$mysql_pass = "";
$mysql_name = "";
$conn = new mysqli($mysql_host, $mysql_user, $mysql_pass,$mysql_name);
if ($db->connect_error) {
die("Connection failed: " . $db->connect_error);
}
?>
<?php
//get product rows test to see database is working
$query = $conn->query("SELECT * FROM item WHERE price BETWEEN 0 AND 5 ");
if($query->num_rows > 0){
while($row = $query->fetch_assoc()){
?>
<div class="list-item">
<h2><?php echo $row["name"]; ?></h2>
<h4>Price: <?php echo $row["price"]; ?></h4>
</div>
<?php }
}else{
echo 'Product(s) not found';
} ?>
</div>
</div>
<body>
<form id="form" method="post" action="">
<input type="checkbox" name="price1" class="checkbox" <?=(isset($_POST['price'])?' checked':'')?>/> $0 - 5<br>
<input type="checkbox" name="price2" class="checkbox" <?=(isset($_POST['price'])?' checked':'')?>/> $6 - 10<br>
<input type="checkbox" name="price3" class="checkbox" <?=(isset($_POST['price'])?' checked':'')?>/> $11 - 20<br>
</form>
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.0/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$('.checkbox').on('change',function(){
$('#form').submit();
});
});
</script>
<?php
if (isset($_POST["price1"])){
$query = $conn->query("SELECT * FROM item WHERE price BETWEEN 0 AND 5");
} elseif (isset($_POST["price2"])){
$query = $conn->queryn("SELECT * FROM item WHERE price BETWEEN 6 AND 10");
} elseif (isset($_POST["price3"])){
$query = $conn->query("SELECT * FROM item WHERE price BETWEEN 11 AND 20");
} else {
$query = $conn->query("SELECT price * FROM item");
}
?>