下面我有一个HTML搜索表单 我需要一些关于PHP和MySQL的帮助。我仍然是PHP和MySQL的新手,一位朋友告诉我,我需要使用一个WHERE语句,但是在我做过的研究中,它显示了我或者我理解这个错误。请伙计们,由于我忙于一个项目,我非常需要这个:
<form id="advanced_search" action="" class="clearfix" name="advanced_search" method="post">
以下是所有标签和文字字段,其中一些是您可以看到的选择字段:
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="country"><b>Country</b></label>
<input type="text" name="country"><br /><br />
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="location"><b>Location</b></label>
<input type="text" name="location"><br /><br />
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="status"><b>Status</b></label>
<input type="radio" name="status" value="For Rent"><b><span style="color: #0A0000">For Rent</span></b></input><br />
<input type="radio" name="status" value="For Sale"><b><span style="color: #0A0000">For Sale</span></b></input>
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="type"><b>Type</b></label>
<input type="text" name="type"><br /><br />
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="bedrooms"><b>Bedrooms</b></label>
<input type="text" name="bedrooms"><br /><br />
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="baths"><b>Bathrooms</b></label>
<input type="text" name="baths"><br /><br />
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="min_price"><b>Min Price</b></label>
<input type="text" name="minprice"><br /><br />
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="max_price"><b>Max Price</b></label>
<input type="text" name="maxprice"><br /><br />
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="condition"><b>Condition of Use</b></label>
<input type="radio" name="condition" value="Furnished"><b><span style="color: #0A0000">Furnished</span></b></input><br />
<input type="radio" name="condition" value="Not Furnished"><b><span style="color: #0A0000">Not Furnished</span></b></input>
</div>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<label for="from"><b>From The</b></label>
<input type="radio" name="from" value="Agent"><b><span style="color: #0A0000">Agent</span></b></input><br />
<input type="radio" name="from" value="Private"><b><span style="color: #0A0000">Private</span></b></input>
</div>
以下是表单的结尾,但我看到这里没有提交值:
<div class="clearfix"></div>
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<a href="#" class="btn btn-inverse btnblock">SEARCHPROPERTY</a>
</div>
</form>
**Here's my PHP I just have done:**
<?php
if(isset($_POST['search']))
{
$key=$_POST["search"]; //key=pattern to be searched
$con=mysqli_connect("saproperties","localhost"," ","my_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
**Here by the WHERE and the LIKE, What do I have to put in there?**
$result=mysqli_query($con,"select * from properties where `column_name` like '%$key%'");
while($row=mysqli_fetch_assoc($result))
{
我在这里加入了我的价值观:
$country = $_POST['country'];
$location = $_POST['location'];
$status = $_POST['status'];
$type = $_POST['type'];
$bedrooms = $_POST['bedrooms'];
$bathrooms = $_POST['bathrooms'];
$minprice = $_POST['min_price'];
$maxprice = $_POST['max_price'];
$conditionofuse = $_POST['conditionofuse'];
$fromthe = $_POST['fromthe'];
}
}
?>
答案 0 :(得分:3)
以下是用于从数据库表中搜索关键元素的示例HTML和PHP / Mysql代码
<强> HTML 强>
<form method="GET" action="search.php">
<input type="text" name="search"/>
<input type="submit" value="search">
</form>
PHP: search.php
<?php
if(isset($_GET['search']))
{
$key=$_GET["search"]; //key=pattern to be searched
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result=mysqli_query($con,"select * from table where `column_name` like '%$key%'");
while($row=mysqli_fetch_assoc($result))
{
// Print your search variables
}
}
?>
答案 1 :(得分:2)
虽然您的问题已经被推翻了一些,但我认为这里有一些空间可以帮助您,也许还有其他人可能会遇到此页面。这里有三个组件需要查看:HTML,PHP和数据库。现在,你已经提到过你正在使用MySQL,所以我将根据它来定制我的答案。
HTML
你在那里写的HTML基本上是一个非常小的形式。请注意,它使用post方法,这有点奇怪(你可以搜索get和post方法之间的差异),这个简单的例子应该没问题。您可能需要在该表单中添加搜索按钮。我已经包含了一个简单的搜索式表单,我从我使用的登录表单中占用了这些表单。
<form method="post" action="?p=home" style="text-align:center">
<input class="input-large" name="searchInput" type="password"><br>
<button class="btn btn-success" name="searchSubmit" type="submit">Search</button>
</form>
有些类可能不一样(我在一个单独的CSS文件中定义了这些,这是另一种蠕虫,但你明白了。基本的前提是有一个输入字段和一个按钮,表格类型为post。
PHP
就PHP而言,最简单的方法是在HTML顶部简单地包含一个PHP部分。这是使用标记完成的,标记分别指示PHP部分的开始和结束。因此,对于这样的表单,我会在表单所在的同一文件的顶部使用以下内容。
//Checks to see if the user has pressed the search button
if(isset($_POST['searchSubmit'])){
//When the user presses this button, we run a search query
}
因此,很简单,当用户按下搜索按钮时,我们使用用户在表单中提供的信息运行searchFuntion。当然,您可能希望检查用户提供的有效性输入,并且网上其他地方有很多很好的资源。请注意,$ _POST ['searchInput']将包含表单中字段的信息!
MySQL
这是一个有点棘手的地方,因为你没有发布任何关于你的数据库的东西,所以我真的不能给你任何具体的建议。话虽这么说,我可以告诉你一些你的查询应该包含什么。像这样的简单搜索的大多数查询将包含以下内容:
SELECT * FROM databaseName WHERE searchColumn LIKE '%searchterm%' LIMIT 5
这看起来有点令人困惑,所以我会把它分解。 SELECT *选择名为“databaseName”的数据库中的所有列,您必须根据自己的数据库结构进行更改。 “searchColumn”术语表示我们要搜索的列(名称,地址,内容?)。 LIKE'searchterm%'位表示我们要查找的内容,%是通配符。 There's a great stack overflow question here about wildcards to use for searching。最后,LIMIT 5限制了将返回多少结果。当然,有很多方法可以自定义一个查询,你需要多找几点才能找到适合你的方法。这只是一个例子。
您可以通过mysqli_query函数将MySQL与PHP结合使用,还有很多其他文章正在执行here 。本文还向您展示了如何使用mysql_fetch_array返回和打印结果,如下所示:
mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error()); //Connect to the the server we are going to use
mysql_select_db("Database_Name") or die(mysql_error()); //Select the database
$data = mysql_query("YOUR QUERY HERE") ;//Create your query
or die(mysql_error()); //If the query fails, die (I'll explain below)
while($info = mysql_fetch_array( $data ))
{
//Print out your results here
}
我应该提一下,如果调用它,die命令将阻止PHP执行,并将在括号中打印消息。在这种情况下,括号中的消息是来自MySQL的错误消息。
祝你好运。
答案 2 :(得分:0)
你还没有分享你的PHP代码!!
只需编写一个select语句,然后使用外卡将搜索文本设置为搜索变量之前和之后的%,您可以通过帖子获取或获取。