我有一个查询,我正在尝试使用多个参数进行搜索,以便从sql中对数据响应进行排序。
查询代码:
$sql = "SELECT * FROM `apartments` WHERE `building_num`='{$i}' ORDER by `apartment_num` ASC";
搜索表单:
<form method="GET">
<input type="hidden" name="page" value="price">
<select class="styled-select2" name="type">
<option value="0">Apartment type</option>
<option value="דופלקס">Duplex</option>
<option value="דירה">Apartments</option>
<option value="דירת גן">דירת גן</option>
</select>
<select class="styled-select2" name="rooms">
<option value="0">rooms</option>
<option value="4">4</option>
<option value="3">3</option>
<option value="5">5</option>
</select>
<select class="styled-select2" name="price">
<option value="0">Price</option>
<option value="700000-800000">700,000-800,000 ₪ </option>
<option value="800000-900000">800,000-900,000 ₪</option>
<option value="900000-1000000">900,000-1,000,000 ₪</option>
<option value="1000000-1100000">1,000,000-1,100,000 ₪</option>
<option value="1100000-1200000">1,100,000-1,200,000 ₪</option>
<option value="1200000-1300000">1,200,000-1,300,000 ₪</option>
<option value="1300000-1400000">1,300,000-1,400,000 ₪</option>
<option value="1400000">1,400,000 up</option>
</select>
<input type="hidden" name="action" value="search">
<button type="submit">Search</button>
</form>
有三个参数,但不是必须的,客户可以只使用'公寓类型'和'价格'或只有一个参数,我试了几个小时写查询没有成功,任何一个可以帮助?
// Vars on table apartments
// Rooms - > Rooms
// Price -> price
// Apartment type -> type
2条答案
按热度按时间pvcm50d11#
在这种情况下,您必须按如下方式构建动态查询:-
通过这种方式,您可以让所有三个过滤器自由选择或不选择。
7eumitmz2#
首先,和查询(或多个查询)和您给客户的tge选项之间没有直接联系。。。
如果你想,那么你可以让客户填写一些领域,如果你不那么没有。。。这是一个决定的问题,从中衍生出发展
缺少示例代码,因此我可以直接回答有关查询的问题并添加一些注解
既然您已经给出了特定的select选项,那么您应该将其用于特定的搜索我还将对返回的$\u post信息使用一些验证
关于查询,我需要假设所有选项都保存在公寓表中,在该表下,查询应该如下所示:
如果您希望合并所有参数,您应该使用and而不是or and,同样,您可以决定同时使用and和or,并对用户给定的每个场景使用不同的查询