2017-04-15 14 views
-1

MYSQLでフィルタリングしたカテゴリをどのように並べ替えることができますか? たとえば、私は最も安い帽子を手に入れたいと思います。私は何をしなければなりませんか?私の目にMYSQLでフィルタリングしたカテゴリをどのように並べ替えることができますか?

if(isset($_GET['category'])){ 
     $category = $_GET['category']; 
     $sql = "SELECT * FROM store WHERE category='$category'";}else{ 
     $sql = "SELECT id,title,image FROM store"; 
    } 
    if(isset($_GET['category'],$_GET['value'])){ 
     $currentPage = $_GET['category']; 
     $value = $_GET['value']; 
     $sql = "SELECT * FROM store WHERE category='$category'ORDER BY $value"; 
    } 
    if(isset($_GET['value'])) { 
     if($_GET['value'] == 'price') { 
      // query to get all by price 
      $sql = "SELECT * FROM store ORDER BY price"; 
     } 
     elseif($_GET['value'] == 'title') { 
      // query to get all by title 
      $sql = "SELECT * FROM store ORDER BY title"; 
     } elseif($_GET['value']== 'date') { 
      // query to get all by date added 
      $sql = "SELECT * FROM store ORDER BY date_added"; 
     } 

`

<div id="filters"> 
 
\t \t <a href="stores.php">All</a> \t 
 
     <a href="stores.php?category=t-shirt">T-Shirt</a> 
 
     <a href="stores.php?category=mug">Mug</a> 
 
     <a href="stores.php?category=hat">Hat</a> 
 
\t </div> 
 
\t <label for="sort">Sort By</label> 
 
\t <select name="sort"> 
 
\t <option value="price">Price: Low to High</option> 
 
\t <option value="title">Title: A-Z</option> 
 
\t <option value="date">Newest</option> 
 
\t </select>

答えて

0

/*****
私はあなたの特定のHTMLを使って、あなたが欲しいものを得ることができますどのように表示されません。だから、私がやったことは、フォームの入力としてカテゴリとソートを配置することです。このようにして、カテゴリとソートで簡単に操作できます。

ここのフォームメソッドはGETです。 POSTはif(isset($ _ POST))を意味します。

これが役に立ちます。
******/
//(ISSET($ _ GET [ 'カテゴリー'])){

$カテゴリ= $ _GET [ 'カテゴリー']場合カテゴリ
を定義します。

}

//結果
の順序を定義する場合(ISSET($ _ GET [ 'ソート'])){

$ソート= $ _GET [ 'ソート']。

}

//フォームが送信されると
場合(ISSET($ _)[ '提出'] GET){

//選択したソート入力に基づいて、カテゴリ入力と順序結果に基づいて
$ sql = "SELECT * FROM storeカテゴリ= '$ category' ORDER BY $ sort";

}

< forrmアクション= "店舗。カテゴリ ">カテゴリー< /ラベル>
<選択名= "カテゴリ" >
<オプション値= "Tシャツ" > Tシャツphpの」方法= "GET"=用>

<ラベル" < /オプション>
<オプション値= "マグカップ" >マグ< /オプション>
<オプション値= "帽子"/>

< /フォーム>

+0

何私は希望ハット< /オプション>
</>

<label for="sort">Sort By</label> <select name="sort"> <option value="price">Price: Low to High</option> <option value="title">Title: A-Z</option> <option value="date">Newest</option> </select> 

<入力タイプを選択=名= '提出' '提出していません'条件付きステートメントを作成して、フィルタリングと並べ替えを同時に行うことができます。SELECT * FROM store ORDER BY price where where c ategory =私の条件文を持つ$ category私はすべての項目だけをソートすることができます。私はそれを同時にフィルタリングしてソートすることはできません。 –

関連する問題