mysql - 如何编写查询以接受搜索框的输入并从 MySql db (Wordpress) 进行搜索

标签 mysql 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']。希望它对您有用。

关于mysql - 如何编写查询以接受搜索框的输入并从 MySql db (Wordpress) 进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53966912/

相关文章:

php - 更改 WooCommerce 成员(member)状态

Ajax + qtranslate

mysql - 当不同名称的数量小于 200 mysql 时获取名称

mysql - 在 MySQL 中使用 Time 数据类型,无需秒

mysql - 检测邮寄地址相似度

mysql - 如何避免 mysql DB 上的高负载?

Php - 您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展

css - WordPress 相对定位和页面高度 CSS 问题

php - WordPress:如何按meta_value按降序顺序从wp_posts和wp_postmeta获取记录?

php - 图表未在带有融合图表的 php 和 mysql 中生成