php - 使用多复选框时用php过滤mysql数据库

标签 php mysql

我对编码和尝试构建电子商务网站还很陌生。我的所有产品都在一个数据库中,并使用 php while 循环将其链接到我的网页,但我想弄清楚如何使用复选框过滤显示的数据,以便用户可以按颜色、价格、品牌等进行过滤。我目前的代码如下:

<div class="container">
 <div class="row">

  <form method="post">

   <div class="col-md-4 checkbox form-group">
    <label>
     <input type="checkbox" value="">
      Urban Outfitters
    </label>
    <label>
     <input type="checkbox" value="">
      Topman
    </label>
   </div>

  <div class="col-md-4 checkbox form-group">
   <label>
    <input type="checkbox" value="">
     Nike
   </label>
   <label>
    <input type="checkbox" value="">
    Topman
   </label>
  </div>


 </div>

 </form>

     <?php 

       $query = "SELECT image, retailer, brand, name, price, sale_price, saving, percentage, link, colour, category FROM mensproducts WHERE category='Accessories'";

   if ($result=mysqli_query($link, $query)) {

   // output data 

    while ($row = mysqli_fetch_array($result)) {

    echo "<div class='col-md-3'> 
            <table class='product table-responsive'>
            <tr><td class='productImage'><a href=".$row["link"]." target='_blank'><img src='".$row["image"]."'/></a></td></tr>
            <tr><td class='retailer'>".$row["retailer"]."</td></tr> 
            <tr><td class='brand'>".$row["brand"]."</td></tr>  
            <tr><td class='desc'>".$row["name"]."</td></tr>  
            <tr><td class='price'><span style='color:red;text-decoration:line-through'>£".$row["price"]."</span>   £".$row["sale_price"]."</td></tr>  
            <tr><td class='productLink'><a class='btn btn-primary btn-block' href=".$row["link"]." target='_blank' role='button'>Buy Now</a></td></tr> 
            </table>
          </div>";

    }

    } else {

       echo "It failed!";

    }

 ?>

</div>

最佳答案

为您的复选框命名:
<input type="checkbox" name="nike" value="">

<input type="checkbox" name="topman" value="">
然后添加检查参数并修改查询:

if(($_POST["nike"] && $_POST["topman"]) || (!$_POST["nike"] && !$_POST["topman"])) {
   $query = "SELECT image, retailer, brand, name, price, sale_price, saving, percentage, link, colour, category FROM mensproducts WHERE category='Accessories'";
} elseif($_POST["nike"]) {
   $query = "SELECT image, retailer, brand, name, price, sale_price, saving, percentage, link, colour, category FROM mensproducts WHERE category='Accessories' AND mark='nike'";
} else {
   $query = "SELECT image, retailer, brand, name, price, sale_price, saving, percentage, link, colour, category FROM mensproducts WHERE category='Accessories' AND mark='topman'";
}

只需将标记替换为标记的 SQL 列即可。

关于php - 使用多复选框时用php过滤mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42258109/

相关文章:

MySQL:更新语句期间为 "Unknown column in where clause"

mySQL 查询根据逗号分隔的列表值检查字符串

php - mysql关系外键错误

mysql - SELECT COUNT(*) 用于唯一的 ID 对

mysql - SQL 3 表连接

php - HTTP Post 将 € 转换为 ?象征

php - DateTime::createFromFormat(...) 有替代品吗?

php - 使用 Zend Framework 清理 INSERT SELECT sql

php - mySQL 将时间戳与当前日期进行比较

php - ZF2 : Fatal error: Using $this when not in object context in linux platform