首页 > 解决方案 > 如何编写查询以接受来自搜索框的输入并从 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';
} 

我可以使用此代码成功访问所有数据。

标签: mysqlwordpress

解决方案


首先,该函数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']. 希望它对你有用。


推荐阅读