mysql - 如何编写查询以接受来自搜索框的输入并从 MySql db (Wordpress) 中搜索
问题描述
我正在尝试使用搜索框从 Wordpress 站点访问本地 wamp 服务器的数据。我使用该函数创建了搜索框get_search_form()
,但我无法在 php 中编写查询来使用它进行访问。
我使用过 Wamp 服务器(本地主机)和一个 Wordpress 站点。
我尝试为搜索框编写 html 代码并尝试使用它访问数据。但它没有用。我觉得运行单个 php 脚本而不是单独的 html 和 php 脚本很容易。
从数据库获取数据的代码:
$connect = mysqli_connect("localhost", "root", "", "mydb");
$output = '';
if(isset($_POST["query"]))
{
$search = mysqli_real_escape_string($connect, $_POST["query"]);
$query = "
SELECT * FROM clients;
WHERE Name LIKE '%".$search."%'
OR Aadhar LIKE '%".$search."%'
OR Mobile LIKE '%".$search."%'
OR Company LIKE '%".$search."%'
OR Description LIKE '%".$search."%'
";
}
else
{
$query = "SELECT * FROM clients ORDER BY Name";
}
$result = mysqli_query($connect, $query);
if(mysqli_num_rows($result) > 0)
{
$output .= '
<div class="table-responsive">
<table class="table table bordered">
<tr>
<th>Name</th>
<th>Aadhar</th>
<th>Mobile</th>
<th>Company</th>
<th>Description</th>
</tr>
';
while($row = mysqli_fetch_array($result)
{
$output .= '
<tr>
<td>'.$row["Name"].'</td>
<td>'.$row["Aadhar"].'</td>
<td>'.$row["Mobile"].'</td>
<td>'.$row["Company"].'</td>
<td>'.$row["Description"].'</td>
</tr>
';
}
echo $output;
}
else
{
echo 'Data Not Found';
}
我可以使用此代码成功访问所有数据。
解决方案
首先,该函数get_search_form();
将创建一个搜索框和一个带有包装表单的提交按钮。表单方法是 GET 所以$_POST
在你的代码中是完全错误的。接下来是使用此函数创建的搜索框,名称为"s"
。下面的代码将通过函数生成:
<form role="search" method="get" class="search-form" action="">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Search …" value="" name="s">
</label>
<input type="submit" class="search-submit" value="Search">
</form>
所以$_POST['query']
用$_GET['s']
. 希望它对你有用。