2017-02-15 55 views
1

我对编码和尝试构建电子商务站点相当陌生。我有我的所有产品在数据库中,并已使用php while循环链接到我的网页,但我想弄清楚如何过滤使用复选框显示的数据,以便用户可以按颜色,价格,品牌等过滤。代码我现在有如下:当使用多个复选框时使用php过滤mysql数据库

<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> 

+1

如果您要让它们在查询中使用相同的名称并将它们作为数组处理,那么您的复选框需要命名属性并使用相同的名称。 I.e .:'name =“检查[]”'。 –

+0

使用FROM mensproducts WHERE category ='Accessories'and ... –

+1

“我对编码和尝试建立电子商务网站相当陌生。”虽然每个人都必须从某个地方开始,但建设一个电子商务网站作为您的第一个项目就像学习乘坐小船穿越大洋航行一样。我会*强烈*鼓励你在与这个代码库结婚之前评估像[Magento](https://magento.com)这样的现有解决方案。 – tadman

回答

0

名字您的复选框:
<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列即可。

+0

格式化代码时,只需缩进四个空格或使用'{}'按钮为您完成。这看起来都搞砸了。 – tadman

相关问题