2017-02-15 27 views
1

私は、電子商取引サイトをコーディングして作成しようとしています。私はデータベース内のすべての製品を持っているし、PHPのループを使用して私のWebページにリンクしているが、私はユーザーが色、価格、ブランドなどでフィルタできるようにチェックボックスを使用して表示されたデータをフィルタリングする方法を把握しようとしています。次のように私は現在持っているコードは次のとおりです。複数のチェックボックスを使用しているときに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

チェックボックスには名前付き属性が必要で、クエリで同じものを使用して配列として扱う場合は、同じ名前の属性が必要です。 Ie .: 'name =" check [] "'。 –

+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

コードを書式設定するときは、4つのスペースでインデントするか、 '{}'ボタンを使用してください。これはすべて台無しに見える。 – tadman

関連する問題