0

私のデータベースには、さまざまなカテゴリとタイプの車両がいくつかあります。カテゴリとタイプで車両をフィルタリングするフォームを作成したいと思います。したがって、フォームコードは次のようになります。

<form action="" method="post">
Type <select name="search_type">
           <option value="jeep">Jeep</option>
           <option value="Wagon">Wagon</option>
           <option value="cab">Cab</option>
     </select>

Category <select name="search_category">
           <option value="Recondition">Recondition</option>
           <option value="Used">Used</option>
     </select>
    <input type="submit" name="search_submit"></form>

phpコードは次のとおりです。

if(isset($_POST['search_submit']))
{
  $all_vehicles    = FALSE;
  $search_type     = $_POST['search_type'];
  $search_category = $_POST['search_category'];
  $search_brand    = $_POST['search_brand'];

  $search_result   = mysql_query("SELECT * FROM vehicle_info WHERE type='$search_type' && catagory='$search_catagory' && brand='$search_brand' ORDER BY id desc");
}
else
{
  $search_result = mysql_query("SELECT * FROM vehicle_info ORDER BY id desc");
}

誰かがjeeps任意のカテゴリ(使用済みまたは再調整)で検索したい場合、クエリにどのコードを書く必要がありますか?

<option>「ANY」として新しいものを追加できることはわかっています。しかし、クエリでそれを使用する方法がわかりません。

4

3 に答える 3

1

そのまま保存する必要はありません。カテゴリなしで選択するだけです。もちろん、保存されているカテゴリはこれら 2 つだけであると仮定します。

SELECT * FROM vehicle_info WHERE type = '$search_type' ORDER BY id DESC;

また; SQL インジェクションに注意してください。


@dualed で応答して編集します。

正しい。彼は単に追加することができました<option value="all">All categories</option>

そして、if ステートメントを追加します。

if ($search_category != "all")
{
    $search_result = mysql_query("SELECT * FROM vehicle_info WHERE type = '$search_type' AND category = '$search_category' ORDER BY id DESC;");
}
于 2013-01-07T13:01:20.087 に答える
0
 if(isset($_POST['search_submit']))
        {
            $all_vehicles=FALSE;
            $search_type = $_POST['search_type'];
            $search_category = $_POST['search_category'];
            $search_brand = $_POST['search_brand'];

            $query = "SELECT * FROM vehicle_info WHERE type='$search_type'";
            if(!empty($search_category)) {
               $query .= " && catagory='$search_catagory'";
            }
            if(!empty($search_brand)) {
                 $query .= " && brand='$search_brand'";
            }
            $query .= " ORDER BY id desc"


            $search_result = mysql_query($query);
        }
        else
        {
             $search_result = mysql_query("SELECT * FROM vehicle_info ORDER BY id desc");
        }
于 2013-01-07T13:02:51.390 に答える
0

あなたが使用することができますIN()

$search_result = mysql_query("SELECT * FROM vehicle_info WHERE type IN('used', 'recondition') AND ...

参照: http://dev.mysql.com/doc/refman/5.1/de/comparison-operators.html

于 2013-01-07T12:59:07.777 に答える