-1

我之前问过这个问题,但由于帖子不清楚,所以它被关闭了,无论如何我现在正试图以清晰的方式提问。

我有一家汽车服务公司,所以我们也销售轮胎,我想在网站上创建一个可过滤的搜索方法,例如客户将从选项中搜索特定值,就像他会搜索所有制造商但他想要夏季轮胎,宽度为 150,轮廓为 40,直径为 16,其余的他将选择全部选项。等等...

html代码:

<label for="manufacturer"><strong>manufacturer:</strong></label>
                                <select id="manufacturer">
                                    <option selected="selected">All</option>
                                    <option value="option1">BF Goodrich</option>
                                    <option value="option2">Continental</option>
                                    <option value="option3">Michelin</option>
                                    <option value="option4">Pirelli</option>
                                </select>
                            </li>
                            <li>
                                <label for="model"><strong>tyretype:</strong></label>
                                <select id="model">
                                    <option selected="selected">All</option>
                                    <option value="option1">Summer tyre</option>
                                    <option value="option2">winter tyre</option>
                                    <option value="option3">winter tyre 2</option>
                                </select>
                            </li>
                            <li class="select-two">
                                <div>
                                    <label for="min-price"><strong>width:</strong></label>
                                    <select id="min-price">
                                        <option selected="selected">All</option>
                                        <option value="option1">145</option>
                                        <option value="option2">150</option>
                                        <option value="option3">155</option>
                                        <option value="option3">160</option>
                                    </select>
                                </div>
                                <div>
                                    <label for="max-price"><strong>Profil:</strong></label>
                                    <select id="max-price">
                                        <option selected="selected">All</option>
                                        <option value="option1">30</option>
                                        <option value="option2">35</option>
                                        <option value="option3">40</option>
                                        <option value="option3">45</option
                                    </select>                   
                                </div>
                            </li>
                            <li class="select-two">
                                <div>
                                    <label for="min-price"><strong>Diameter:</strong></label>
                                    <select id="min-price">
                                        <option selected="selected">All</option>
                                        <option value="option1">13"</option>
                                        <option value="option2">14"</option>
                                        <option value="option3">15"</option>
                                        <option value="option3">16"</option>
                                        <option value="option3">17"</option>
                                        <option value="option3">18"</option>
                                        <option value="option3">19"</option>
                                    </select>
                                </div>
                                <div>
                                    <label for="max-price"><strong>Maximum load:</strong></label>
                                    <select id="max-price">
                                        <option selected="selected">All</option>
                                        <option value="option1">75</option>
                                        <option value="option2">76</option>
                                        <option value="option3">77</option>
                                        <option value="option3">78</option>
                                        <option value="option3">79</option>
                                        <option value="option3">80</option>
                                        <option value="option3">81</option>
                                        <option value="option3">82</option>
                                        <option value="option3">83</option>
                                        <option value="option3">84</option>
                                    </select>                   
                                </div>
                            </li>

                            <li>
                                <label for="engine"><strong>Maximum speed:</strong></label>
                                <select id="engine">
                                    <option selected="selected">All</option>
                                    <option value="option1">Q = max 160 km/h</option>
                                    <option value="option2">R = max 170 km/h</option>
                                    <option value="option3">S = max 180 km/h</option>
                                    <option value="option3">T = max 190 km/h</option>
                                    <option value="option3">H = max 210 km/h</option>
                                </select>
                            </li>

在mysql数据库中,我有一个名为轮胎的表,其中包括以下列,

制造商、轮胎类型、宽度、长度、轮廓、直径、最大负载、最大速度、轮胎价格。

我想不出一个好的搜索查询,包括上面列出的所有搜索选项,并从 mysql 数据库中正确获取信息。

4

2 回答 2

0
$sql = "SELECT * FROM tyres WHERE 1==1";

if ($_POST['manufacturer'] != 'ALL'){
   $sql = $sql . ' AND manufacturer==' . $_POST['manufacturer'];
}
if ($_POST['model'] != 'ALL'){
   $sql = $sql . ' AND model==' . $_POST['model'];
}
 //etc etc

所以基本上你只在必要时将 AND 子句添加到你的 WHERE 中,这只有在选择“ALL”以外的东西时才会发生。

您需要为默认的 ALL 选择菜单添加一个值,如下所示:

<select id="manufacturer">
   <option value ="ALL" selected="selected">All</option>
   <option value="option1">BF Goodrich</option>
   <option value="option2">Continental</option>
</select>
于 2013-03-18T23:50:05.210 回答
-1
$query = mysql_query("SELECT * FROM tyres WHERE manufacturer='".$_POST['manufacturer']."' AND tyretype='".$_POST['tyretype']."' AND ...etc..");

更多信息:http ://dev.mysql.com/doc/refman/5.0/en/where-optimizations.html 如果你有问题我在这里:)

如果他选择所有选项,您会做出这样的 if:

<?
if ($_POST['tyretype'] == "all") 
{  // then do the same query you can see above without this part "AND tyretype='".$_POST['tyretype']."'"
}
?>
于 2013-03-18T23:46:00.517 回答