【问题标题】:How to display the query table of a searched and filtered value?如何显示一个搜索过滤值的查询表?
【发布时间】:2018-06-12 15:02:58
【问题描述】:

我的搜索和过滤 PHP 代码没有显示我搜索和过滤的值的查询表。我该如何解决这个问题?

PHP

if(isset($_POST['search']))
{
    $valueToSearch = $_POST['valueToSearch'];
    // search in all table columns
    // using concat mysql function
    $query = "SELECT * FROM `details` WHERE CONCAT('id','date_of_entry','region','province_of_provider') LIKE '%".$valueToSearch."%'";
    $search_result = filterTable($query);
}
 else {
    $query = "SELECT * FROM `details`";
    $search_result = filterTable($query);
}

// function to connect and execute the query
function filterTable($query)
{

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";

    $connect = mysqli_connect($servername, $username, $password, $dbname);
    $filter_Result = mysqli_query($connect, $query);
    return $filter_Result;
}

while ($trainee = mysqli_fetch_array($search_result)){

    echo "<tr>";
    echo "<td>".$trainee['id']."</td>"; 
    echo "<td>".$trainee['date_of_entry']."</td>";
    echo "<td>".$trainee['region']."</td>";
    echo "<td>".$trainee['province_of_provider']."</td>";
    echo "</tr>";

}// End while

?>

当我从textbox 搜索和过滤时,表格行不包含任何值,包括其边框,但每列的表格标题仍然存在。此外,当我将搜索留空并单击过滤器按钮时,所有表行都包含在数据库表中找到的所有数据的所有值。

第一次编辑:

我改变了我的:

$query = "SELECT * FROM `details` WHERE CONCAT('id','date_of_entry','region','province_of_provider') LIKE '%".$valueToSearch."%'";

到这里:

$query = "SELECT * FROM `details` WHERE CONCAT_WS(' ','id','date_of_entry','region','province_of_provider') LIKE '%".$valueToSearch."%'";

还是一样,我的搜索结果是一个空表,但只有表列标题。

【问题讨论】:

标签: php search filter sql-like concat


【解决方案1】:

替换这部分:

$query = "SELECT * FROM `details` WHERE CONCAT('id','date_of_entry','region','province_of_provider') LIKE '%".$valueToSearch."%'";

这样:

$query = "SELECT * FROM `details` WHERE CONCAT(`id`, `date_of_entry`, `region`, `province_of_provider`) LIKE '%".$valueToSearch."%'";

【讨论】:

  • 我不敢相信,但这个答案解决了我的问题!我花了时间!非常感谢您提供最简单的回答 Petya!你非常值得我感谢!
  • 不客气!如果您遇到 sql 查询问题,请将它们分成更小的块并使用许多在线 mysql 资源之一进行测试。这是最快的方法。
猜你喜欢
  • 2019-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-03
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多