如何使用PHP和MySQL创建搜索功能?

如何使用PHP和MySQL创建搜索功能?,php,html,mysql,Php,Html,Mysql,下面我有一个HTML搜索表单。 我需要一些关于PHP和MySQL的帮助。我在PHP和MySQL方面还是新手,一位朋友告诉我需要使用WHERE语句,但在我所做的研究中,它表明我不是这样,或者我理解错了。伙计们,我非常需要这个,因为我正忙于一个项目: 下面是用于从数据库表中搜索关键元素的示例HTML和PHP/Mysql代码 HTML PHP:search.PHP <?php if(isset($_GET['search'])) { $key=$_GET["search"]; //key=pa

下面我有一个HTML搜索表单。 我需要一些关于PHP和MySQL的帮助。我在PHP和MySQL方面还是新手,一位朋友告诉我需要使用WHERE语句,但在我所做的研究中,它表明我不是这样,或者我理解错了。伙计们,我非常需要这个,因为我正忙于一个项目:


下面是用于从数据库表中搜索关键元素的示例HTML和PHP/Mysql代码

HTML

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 
}

}


?>

你还没有分享你的php代码


只需编写一条select语句,并使用通配符将搜索文本放在搜索变量之前和之后,您可以通过post或get获取该变量

虽然你的问题被否决了一点,但我认为这里有一些空间可以帮助你,也许其他人可能会无意中发现这一页。这里确实有三个组件需要查看: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>
因此,非常简单,当用户按下search按钮时,我们使用用户在表单中提供的信息运行SearchFunction。当然,您可能希望检查用户提供的输入的有效性,网上其他地方有很多关于这方面的优秀资源。请注意,$\u POST['searchInput']将包含表单中字段的信息

MySQL 这就是它变得有点棘手的地方,因为你还没有发布任何关于你的数据库的信息,所以我不能给你任何具体的建议。话虽如此,我可以告诉你一点你的查询应该包含什么。对于像这样的简单搜索,大多数查询将包含以下内容:

SELECT * FROM databaseName WHERE searchColumn LIKE '%searchterm%' LIMIT 5
这看起来有点混乱,所以我要把它分解一下。SELECT*从名为databaseName的数据库中选择所有列,您必须根据自己的数据库结构对其进行更改。searchColumn术语表示我们正在通过名称、地址和内容搜索的列?。类似的“searchterm%”位表示我们正在查找的内容,其中%是通配符。最后,限制5对返回的结果数量进行了限制。当然,定制查询的方法有很多种,您必须多看一看才能找到适合您的方法。这只是一个例子

您可以通过mysqli_查询函数将MySQL与PHP结合使用,还有很多其他文章介绍如何使用MySQL。本文还向您展示了如何使用mysql_fetch_数组返回和打印结果,如下所示:

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的错误消息


祝你好运。

我现在还没有看到任何PHP代码。我需要PHP代码,因为我不知道该做什么。我对PHPDo还是很陌生。你有数据库吗?您是否有启用了PHP的Web服务器?你有没有看过这个新型互联网站上存在的数以百万计的PHP和数据库教程?看一看>这是一篇关于如何做到这一点的好文章。所以其他一切都是正确的,我只需要做一些更改,然后它就可以工作了?非常感谢你的帮助你肯定走上了正确的道路。我注意到您正在使用$\u GET['country'],而您的表单类型为$\u POST。如果是这种情况,那么所有变量都应该是$\u POST['varName']。作为事后考虑,您可能希望在尝试执行查询之前,只回显从表单中捕获的变量。好的,我将对其进行更改,然后您可以告诉我进一步的操作。在哪里之类的地方?我应该在那里做什么?这取决于数据库的结构。关于MySQL中的关键字搜索,这里有一个很好的问题:。
<form method="GET" action="search.php">
<input type="text" name="search"/>
<input type="submit" value="search">
 </form>
<?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 
}

}


?>
<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>
//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
}
SELECT * FROM databaseName WHERE searchColumn LIKE '%searchterm%' LIMIT 5
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
}