【问题标题】:Need my HTML Search Form to search the Options Selected on the Search Form and then show my results?需要我的 HTML 搜索表单来搜索在搜索表单上选择的选项,然后显示我的结果吗?
【发布时间】:2014-05-12 22:16:20
【问题描述】:

我的网站有 4 个页面:主页、销售页面、出租页面和联系我们页面。

主页上有一个搜索表单,需要搜索他们选择的选项。这是一个房地产网站,所以如果他们点击搜索按钮,他们需要被带到他们选择的销售页面或租金页面,例如,如果他们选择待售、房屋、3 间卧室、2 间浴室,然后是任何金额最低价格/最高价格然后它需要去销售页面并根据他们选择的价值检索房屋。

这是搜索表单的图片:

谁能帮我解决这个问题?

这是 HTML 搜索表单的编码:

<form id="advanced_search" action="search.php" class="clearfix" name="advanced_search" method="post">

<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="type"><b>Type</b></label>
<select>
  <option value="House">House</option>
  <option value="Apartment">Apartment</option>
  <option value="Flat">Flat</option>
  <option value="Townhouse">Townhouse</option>
  <option value="Plot">Plot</option>
  <option value="Farm">Farm</option>
</select>

</div>

<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="status"><b>Status</b></label>
<select>
  <option value="For Sale">For Sale</option>
  <option value="For Rent">For Rent</option>
</select>

</div>


<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="bedrooms"><b>Bedrooms</b></label>
<select>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
  <option value="10">10</option>
</select>

</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="baths"><b>Bathrooms</b></label>
<select>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
  <option value="10">10</option>
</select>


</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="min_price"><b>Min Price</b></label>
<select>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
  <option value="10">10</option>
</select>

</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="max_price"><b>Max Price</b></label>
<select>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
  <option value="10">10</option>
</select>

</div>

<div class="clearfix"></div>
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<button name="search" type="submit" class="btn btn-success">SEARCH PROPERTY</button>
</div>
</form>

这是我正在努力解决的 PHP 编码:

<?php
if(isset($_POST['search']))
{
$key=$_POST["search"];  //key=pattern to be searched
$con=mysqli_connect("localhost", "root", "");

// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result=mysqli_query($con,"SELECT * FROM properties WHERE");




while($row=mysqli_fetch_assoc($result))
{




}
}

?>

【问题讨论】:

  • 你在纠结什么,具体来说?您究竟需要什么帮助?

标签: php html mysql forms search


【解决方案1】:

试试这个:

<?php

$type = $_POST['type'];
$status = $_POST['status'];
$minPrice = $_POST['min_price'];
$maxPrice = $_POST['max_price'];
$bedrooms = $_POST['bedrooms'];
$baths = $_POST['baths'];

$con=mysqli_connect("localhost","root","","house");
// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM properties  WHERE tipo='$type' and baths = '$baths' and bedrooms = '$bedrooms' and status = '$status' and price between '$minPrice' and '$maxPrice'");

while($row = mysqli_fetch_array($result)) {
  echo $row['type'] . " " . $row['status'];
  echo "<br>";
}

mysqli_close($con);

我在这里创建了一个表,它正在工作。 不要忘记更改 html 代码 " 标签并在此添加属性 "name"

【讨论】:

  • 您在使用我发布的代码吗? php 在错误时说什么?
  • 拜托,你能发布你的整个代码吗?还包含 sql 表,然后我可以检查相同的代码。
  • 你有Skype吗?
  • 当然,把你的Skype名字发给我。
【解决方案2】:

有很多事情是错误的,首先你没有命名你的 html 表单标签,其次你没有在你的 php 代码中使用 $key 变量来修改你的查询。您需要了解基本的表单交互。我也强烈建议你查看MVC,在模板代码上方仅 10 行有一个 sql 连接真的很糟糕。

【讨论】:

    【解决方案3】:

    你必须改变这个: $result=mysqli_query($con,"SELECT * FROM properties WHERE");

    第一个问题,选项:“最高价格、类型等...”在同一张桌子上吗?

    你可以这样做:

    $type = $_POST['type'];

    $status = $_POST['status'];

    $minPrice = $_POST['minPrice'];

    $maxPrice = $_POST['maxPrice'];

    $result=mysqli_query($con,"SELECT * FROM properties WHERE type='$type' and status = '$status' and max_price between '$minPrice' and '$maxPrice'");

    其他字段也一样,应该可以工作

    【讨论】:

    • 还有一点,注意sql注入
    • 是的,在同一张桌子上
    • 哦,抱歉,有一个不同。在桌子上我有价格而不是最低价格/最高价格。因为如果我创建一个属性,那么我只输入一个价格。那么当他们搜索最低和最高价格时,他们必须获得该价格之间的属性
    • 我给你一个例子,请尝试
    • 现在试一试
    【解决方案4】:

    在您的查询中试试这个:

    $type = $_POST['$type'];
    $status = $_POST['$status'];
    $bedrooms = $_POST['bedrooms'];
    $bathrooms = $_POST['bathrooms'];
    $minPrice = $_POST['minPrice'];
    $maxPrice = $_POST['maxPrice'];
    
    $result=mysqli_query($con,"SELECT * FROM properties WHERE type = '$type' and status = '$status' and bedrooms='$bedrooms' and bathrooms = '$bathrooms' and price between $minPrice and $maxPrice");
    

    如果您的 $result 上方的代码正常,它将起作用

    【讨论】:

    • 但是当他们选择它时,它会进入销售页面还是租赁页面?
    • 注意:未定义变量:类型、状态、卧室、浴室、最低和最高价格在 C:\wamp\www\sa property finder\search.php 第 11 行
    • 取决于您的代码...您可以执行 IF...如果 type = 'rent' 然后转到租用页面...如果类型是销售,请转到销售页面,您可以这使用 $type 变量。
    猜你喜欢
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    相关资源
    最近更新 更多