2016-05-10 7 views
2

私は選択した製造元に基づいてマグホイールを表示するSQLクエリのフィルタを適用しようとしています。PHPを使用してHTMLフォームオプションセレクタでMySQLの結果をフィルタリング

これまでのところ、HTMLフォームのドロップダウンリストを生成し、$ _POSTを使用してそれを戻し、sqlクエリに適用してページを再表示します。私は似たような働きをしていますが、このフォームで使用されるオプション>ボックスの代わりに配列とチェックボックスを使用しています。

...から選択するために、メーカーのリストを生成してからポストを提出

// Getting manufacturer to create the filter list. 
    $filterManu = "SELECT DISTINCT manufacturer FROM wheels"; 
    $filterManuResult = mysqli_query($db, $filterManu) or die("Error in Selecting " . mysqli_error($db)); 

// Applying the filtering 
if (isset($_POST['manu'])) { 

    $option = $_POST['manu']; 
    $featuredsql = "SELECT * FROM wheels WHERE manufacturer = " . $option . " ORDER BY diam"; 
} 

$featured = $db->query($featuredsql); 

フォームを、現在これは、任意のフィルタを適用しませんし、実際に表示されるように、車輪を生成ループを破ります形。

<form name="manuFilter" method="POST"> 
     <div class="form-group"></div> 
      <select name="manu"> 
      <option selected disabled>Select a manufacturer</option> 
      <?php while($rowManu = mysqli_fetch_assoc($filterManuResult)) : ?> 
       <option name="manu" value="<?php echo $rowManu['manufacturer']; ?>"><?php echo $rowManu['manufacturer']; ?></option> 
      <?php endwhile; ?> 
      </select>  

      <div class="form-group"></div> 
      <button type="submit" name="filterOptions" value="displayManu" class="btn btn-default btn-sm btn-primary"><i class="fa fa-pencil"></i> Apply</button> 
    </form> 

答えて

2

2つのことは、更新Bへ:

$featuredsql = "SELECT * FROM wheels WHERE manufacturer = '" . $option . "' ORDER BY diam";<br> 


は(私が追加 " '「)
とオプション次の構文を取る:

<option value="option_value">bla bla bla 

かくかくしかじかで名前

0

オプションには名前属性を使用しないでください。これは、あなたのポスト値が壊れている唯一の理由かもしれません - 特にオプション名が選択と同じであるためです。

0

$ featuredsqlに問題があると思います。 $ featuredsというクエリを表示して正常に動作していることを確認します。

関連する問題