gpt4 book ai didi

java - 如何根据搜索选项中的多个值进行搜索

转载 作者:行者123 更新时间:2023-11-29 16:12:53 25 4
gpt4 key购买 nike

我正在尝试执行多项选择的搜索选项,我想从搜索选项中检索每个选择的数据,->如果用户选择一个选项,则搜索选项将根据选择进行搜索->如果用户选择两个选项,则搜索选项将根据选择进行搜索,依此类推。

java代码

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
PrintWriter out= response.getWriter();

try {
String status= request.getParameter("anystatus");
String type= request.getParameter("alltype");
String bedroom= request.getParameter("bedrooms");
String bud= request.getParameter("budget");
String loc= request.getParameter("location");

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/builders","root","root");
String sql="select * from search where anystatus=?,all-type=?,bedrooms=?,budget=?,location=?";

PreparedStatement pt= con.prepareStatement(sql);
pt.setString(1, status);
pt.setString(1, type);
pt.setString(1, bedroom);
pt.setString(1, bud);
pt.setString(1, loc);
ResultSet rs=pt.executeQuery();
if(rs.next()) {

jsp代码:

            <div
class="inline-search-area ml-auto mr-auto d-none d-xl-block d-lg-block">
<div class="row">
<div class="col-xl-2 col-lg-2 col-sm-4 col-6 search-col">
<select class="selectpicker search-fields" name="anystatus"
onchange="purpose()" id="purpose">
<option value="rent">For Rent</option>
<option value="sale">For Sale</option>
</select>
</div>
<div class="col-xl-2 col-lg-2 col-sm-4 col-6 search-col">
<select class="selectpicker search-fields" name="alltype"
onchange="propertytype()">
<option value="all">All Type</option>
<option value="apartment">Apartments</option>
<option value="independenthouse">Independent House</option>
<option value="villa">Villa</option>
<option value="commercialpurpose">Commercial Purpose</option>
<option value="openplots">Open Plots</option>
</select>
</div>

<div class="col-xl-2 col-lg-2 col-sm-4 col-6 search-col"
id="searchbedroom">
<select class="selectpicker search-fields" name="bedrooms">
<option>Bedrooms</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
</div>

<div class="col-xl-2 col-lg-2 col-sm-4 col-6 search-col"
id="searchsqft">
<select class="selectpicker search-fields" name="sqft">
<option>Sqft</option>
<option>1K-2K sqfts</option>
<option>2K-4K sqfts</option>
<option>4K-6K sqfts</option>
<option>6K-10K sqfts</option>
<option>10K+ sqfts</option>
</select>
</div>

<div class="col-xl-2 col-lg-2 col-sm-4 col-6 search-col"
id="rentbudget">
<select class="selectpicker search-fields" name="budget">
<option>Budget</option>
<option>2K-5K</option>
<option>6K-10K</option>
<option>10K-15K</option>
<option>15K+</option>
</select>
</div>
<div class="col-xl-2 col-lg-2 col-sm-4 col-6 search-col"
id="salebudget">
<select class="selectpicker search-fields" name="budget">
<option>Budget</option>
<option>20L-30L</option>
<option>30L-50L</option>
<option>50L-1Cr</option>
<option>1Cr+</option>
</select>
</div>

<div class="col-xl-2 col-lg-2 col-sm-4 col-6 search-col">
<select class="selectpicker search-fields" name="location">
<option>location</option>
<option>Hyderabad</option>
<option>Bangalore</option>
<option>Chennai</option>
</select>
</div>
<div class="col-xl-2 col-lg-2 col-sm-4 col-6 search-col">
<button class="btn button-theme btn-search btn-block" onclick="mySearch()">
<i class="fa fa-search"></i><strong>Search</strong>
</button>
</div>
</div>
</div>

最佳答案

您需要根据这些行上的搜索字段的数量来形成您的 sql 查询 String sql="select * from search where";

            if (status != null || status != "")
sql += " anystatus=? ";

if (type != null || type != "")
sql += " AND all-type=?"

//and so on..

然后给参数设置值也需要以类似的方式完成

我还发现您仅使用第一个参数的值。您需要指定类似这样的内容

            pt.setString(1, status);
pt.setString(2, type);
pt.setString(3, bedroom);
pt.setString(4, bud);
pt.setString(5, loc);

关于java - 如何根据搜索选项中的多个值进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55097047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com